[DB] create table 테이블 생성, 제약조건, 외래키 설정 - 오라클, 데이터베이스
IT/Database

[DB] create table 테이블 생성, 제약조건, 외래키 설정 - 오라클, 데이터베이스

참고사항  
사용 환경 : macOS, 오라클11g , sql deloper를 사용합니다.
*보시기 편하게 소문자를 사용하였습니다.

 

문법 

+번호) 는 설명을 위해 붙였고, 테이블 형성 시 선택사항입니다.
create table 테이블이름
(
        속성이름    데이터타입    +1)조건 
        +2)primary key (속성이름)     
        +3)foreign key  (속성이름) references 테이블이름(속성이름)  on delete | update  옵션 
)

+1) 조건

null | not null | unique | deflault 값 | check 조건  

 

null,not null은 단어 그대로이고,

unique는 중복안됨

(default 값)으로 해당 속성의 기본값을 설정할 수 있습니다.

(check 조건)을 이용해 해당 속성에 값의 범위를 제한이 가능합니다. 

 

+1.1) check 예시

 

+2) primary key 기본키 설정 

다음과 같이 2가지 방법이 존재합니다. 

+3) foreign key 외래키 설정

현재 테이블'고객' 의 '고객번호' 속성은 -> 다른 테이블 '상영관'의 '고객번호'를 참조하고 있습니다. 

foreign key :  현재 테이블 속성 

references  : 어느 테이블의 속성을 참조할지 

on delete | update : 삭제 시 | 업데이트 시 어떻게 할지 

 

+3.1) On Delete

 Cascade : 부모 데이터 삭제 시 자식 데이터도 삭제 

 Set null : 부모 데이터 삭제 시 자식 테이블의 참조 컬럼을 Null로 업데이트

 Set default : 부모 데이터 삭제 시 자식 테이블의 참조 컬럼을 Default 값으로 업데이트

 Restrict : 자식 테이블이 참조하고 있을 경우, 데이터 삭제 불가

 No Action : Restrict와 동일, 옵션을 지정하지 않았을 경우 자동으로 선택된다.
 
+3.2) On Update

 Cascade : 부모 데이터 업데이트 시 자식 데이터도 업데이트 

 Set null : 부모 데이터 업데이트 시 자식 테이블의 참조 컬럼을 Null로 업데이트

 Set default : 부모 데이터 업데이트 시 자식 테이블의 참조 컬럼을 Default 값으로 업데이트

 Restrict : 자식 테이블이 참조하고 있을 경우, 업데이트 불가

 No Action : Restrict와 동일, 옵션을 지정하지 않았을 경우 자동으로 선택된다.