본문 바로가기

프로그래밍/SQL

[SQL 요약 정리] 1-8. CONSTRAINT

8. CONSTRAINT


1) Constraint란?

- 무결성 유지를 위한 사용자 지정 성질(제약조건)이며 데이터사전에 저장된다.

- 이름은 한 사용자 내에서 중복될 수 없으며 표준 객체 명명법을 따르는게 좋다.

- 이름 생략시 ORACLE 자체에서 SYS_Cn형식으로 자동 지정


2) Constraint 정의방법

- 컬럼레벨: 어떤 유형의 제약조건도 정의 가능

컬럼 [CONSTRAINT 제약조건 이름] 제한조건 유형,


- 테이블 레벨: 여러 칼럼에 제약조건 정의할 때 사용, 컬럼 레벨과 별개(NOT NULL 제외)

컬럼,...

[CONSTRAINT 제약조건 이름] 제한조건 유형 (컬럼1, 컬럼2...)


3) Constraint 종류

- NOT NULL: 컬럼이 NULL값 사용 불가, 컬럼 레벨로만 정의 가능(한 컬럼만 NULL가능)

- UNIQUE: 고유키로 지정, UNIQUE 인덱스 자동 생성

- PRIMARY KEY: 각 행을 유일하게 구별, UNIQUE

E 인덱스를 자동 생성(NULL 불가)

*복합키: 여러개의 컬럼을 조합해서 키로 사용

- FOREIGN KEY: 다른 테이블 참조, 자손 테이블에 정의, 부모 테이블의 값과 일치 or NULL

*참조 대상 컬럼이 Primary Key 혹은 Unique 제약 조건 보유해야 함

*ON DELETE CASCADE 추가시 참조 되는 행, 참조하는 행 자동 삭제 가능

- CHECK: 각 행이 만족해야하는 조건 정의, 다른 행의 값 참조