티스토리 뷰
제약 조건
- 테이블 생성 당시에 제약 조건을 준다
- 테이블 생성 후 제약 조건을 줄 수도 있다
제약 조건 |
약자 |
Primary Key |
PK |
Foreign Key |
FK |
Unique |
UK |
Not Null |
NN |
Check |
CK |
문법
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | -- Example of a column-level constraint : CREATE TABLE employees ( employee_id NUMBER(6) [ CONSTRAINT emp_emp_id_pk ] PRIMARY KEY, first_name VARCHAR2(20), ... ); -- 컬럼명 뒤에 한 칸 띄우고 제약 조건을 쓴다 -- CONSTRAINT emp_emp_id_pk 생략 가능 -- Example of a table-level constraint : CREATE TABLE employees ( employee_id NUMBER(6), first_name VARCHAR2(20), ... job_id VARCHAR2(10) NOT NULL, CONSTRAINT emp_emp_id_pk PRIMARY KEY (EMPLOYEE_ID) ); -- job_id VARCHAR2(10) 한 칸 띄우고NOT NULL, -- job_id VARCHAR2(10) 생략 [ CONSTRAINT emp_jobid_nn ] NOT NULL -- , 로 마무리 후 따로 CONSTRAINT emp_emp_id_pk PRIMARY KEY (EMPLOYEE_ID) ) 선언 -- 많은 컬럼 후 제약 조건 유형 뒤에 컬럼명 한 번 더 언급해야 함 -- 문법 처리 결과는 똑같다 | cs |
사용자 지정
- 고유하고 의미있는 이름으로 지정해야 함
- (권장) 테이블 약자_컬럼 약자_제약조건 유형 약자
- ex) emp_empid_pk
dept_depname_nn
dept_loc_fk
emp_email_uk
emp_sal_ck
사용자 생략
oracle이 자동 부여함 ( sys_cxxxxx )
sys_c : 의미는 없으나 오라클이 고유한 이름을 자동 부여함
사용자가 생략하면 sys_c가 무엇을 의미하는지 알 수 없다
제약 조건 선언 시기
테이블 생성 시 : create table ~;
테이블 생성 후 : alter table ~;
처음부터 설계를 잘 해 주는 것이 좋다
제약 조건명 생략 가능
NOT NULL : 컬럼 레벨 문법 밖에 못 씀
나머지 제약 조건 : 컬럼 레벨, 테이블 레벨 어떤 걸 써도 상관없다
'부산 ITWILL 학원 실습 > ORACLE' 카테고리의 다른 글
[SQL 활용] 8. 데이터정의어(DDL) - Table (제약조건 - UNIQUE) (0) | 2018.08.09 |
---|---|
[SQL 활용] 8. 데이터정의어(DDL) - Table (제약조건 - NOT NULL) (0) | 2018.08.09 |
[SQL 활용] 8. 데이터정의어(DDL) - Table ( 테이블 생성 ) (0) | 2018.07.29 |
[SQL 활용] 실습 1. Manipulating Data ( P.66 ) (0) | 2018.07.27 |
[SQL 활용] 치환 변수 (0) | 2018.07.27 |