참고사항
사용 환경 : 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와 동일, 옵션을 지정하지 않았을 경우 자동으로 선택된다.
'IT > Database' 카테고리의 다른 글
[DB] sql Developer와 mysql 이해하고 연결하기 in Mac (0) | 2021.11.24 |
---|---|
[DB] 프로시저 목록/내용 확인 방법 (0) | 2021.10.16 |
[SQL 오류] ORA-02291: integrity constraint (COMPANY.SYS_C007203) violated - parent key not found (2) | 2021.10.06 |
[DB] 테이블 이름명 변경 RENAME - 오라클,데이터베이스 (0) | 2021.10.04 |