DB || DAY4 || 제약조건, 계정생성
0. 명령어 정리
<<데이터 정의어 DDL>>
: 데이터 자체를 생성, 수정, 삭제하는 명령어.
- CREATE TABLE
- ALTER TABLE
- DROP TABLE
- TRUNCATE TABLE
<<데이터 조작어 DML>>
- SELECT (SELECT & FROM + WHERE / ORDER BY / JOIN . . . )
- INSERT (INSERT INTO . . . )
- UPDATE (UPDATE & SET + WHERE . . .)
- DELETE (DELETE FROM 테이블명 + WHERE . . .) : 해당 행 전체를 삭제한다.
( *** 필드값을 없애는것은 null로 update하는 것이다. delete와 다름에 주의!)
<<데이터 제어어 DCL>>
- GRANT
- REVOKE
1. 원래 가지고 있는 테이블의 복사본만들기
CREATE TABLE 복사본이름지정
AS SELECT *
FROM 복사대상테이블 ;
2. 제약조건
1. Not Null - 컬럼에 데이터가 비지 않도록 설정함.
-> 필수적인 데이터 컬럼에 설정함.
2. Unique - 컬럼에 데이터가 중복되지 않도록 설정함 == 고유데이터
-> 주민번호, 전화번호, 메일주소 등의 컬럼에 설정함.
3. Primary Key - aka 기본키. Not Null + Unique의 성격을 모두 가짐
- null 값도, 중복값도 안된다.
- 테이블당 한번만 선언가능!
4. Foreign Key - aka 외래키.
- 자기자신 or 다른테이블의 특정 컬럼을 참조함.
- 다른 테이블과 연계되어서 운영되어야 하는 테이블에 선언한다.
5. Check - 해당 컬럼이 만족해야하는 조건을 지정함. (ex. 주민번호 13자리 . . .)
- 조건문을 어떻게 작성하느냐에 따라 매우 광범위하게 사용될 수 있다.
3. 계정생성하기
*** SYS계정에서만 작업 가능하다!
CREATE USER 계정이름
IDENTIFIED BY 비밀번호 ;
>> 계정은 만들어지지만, 아무 권한도 부여하지 않은 상태이므로 접속권한조차도 없는 상태이다.
4. 생성한 계정에 권한 부여하기
- 권한의 유형 1) System 권한 : DB를 조작할 수 있는 권한 // 소유자: DBA
2) Object 권한 : Object를 조작할 수 있는 권한 // 소유자: Object 소유자
GRANT 부여할 권한 (EX. create session, create table . . .)
TO 권한을 부여받을 계정이름 ;
5. 부여한 권한 회수하기
*** SYS 계정에서 가능함!
REVOKE 회수할 권한
FROM 권한을 회수할 계정이름 ;
>> 회수한 권한으로 접근을 시도하면 insuffuicient privileges (권한없음) 오류가 뜨는 것을 확인할 수 있다.
6. 다른 유저 소유의 테이블을 쓰고싶을때
FROM 타계정명.테이블명
SELECT
FROM 테이블이저장된_타계정이름 .보고싶은 테이블이름 ;
>> "테이블이 없다" 는 오류가 뜬다면, 해당 계정이 SELECT 권한이 없기때문이므로
테이블이 저장된 상위계정으로 로그인 해서 Object권한을 부여해줘야 한다!
# 상위계정에서 하위계정에게 Object권한 부여하기
GRANT 타 계정에게 부여하고 싶은 권한 (EX. select, update . . .)
ON 오브젝트명 (EX. employees . . .)
TO 권한을 부여 할 계정 (EX. demo) ;
centos - 다운로드 - centOS Linux 8버전 - x86_64 - dvd1.iso 다운받기
'개발자 양성과정 필기노트 > DB | ORACLE' 카테고리의 다른 글
리눅스 터미널명령어 (0) | 2021.08.11 |
---|---|
리눅스 명령키 (0) | 2021.08.09 |
ORDER BY , JOIN , 서브쿼리 (0) | 2021.07.29 |
데이터정의어(DDL), 데이터조작어 (DML) (0) | 2021.07.26 |
Linux개발환경구축, DB접속 (0) | 2021.07.21 |
댓글