12. 제약조건
데이터 무결성 제약 조건 (Data Integrity Constraint Rule)
테이블에 부적절한 자료가 입력되는 것을 방지하기 위해 테이블을 생성할 때 각 컬럼에 대해서 정의하는 여러가지 규칙
NOT NULL : NULL을 허용하지 않는다
UNIQUE : 중복된 값을 허용하지 않는다.
PRIMARY KEY : NULL을 허용하지 않고 중복된 값을 허용하지 않는다.
FOREIGN KEY : 참조되는 테이블의 컬럼의 값이 존재하면 허용한다.
CHECK : 저장 가능한 데이터 값의 범위나 조건을 지정하여 설정한 값만을 허용한다.
FOREIGN KEY란
참조되는 컬럼 (부모 컬럼) 에 존재하는 값만 참조하는 컬럼 (자식 컬럼) 에 사용할 수 있다.
그렇지 않은 경우는 에러
주의) 테이블 단위가 아닌 컬럼 단위로 제약
+)
DEFAULT : 이무것도 들어가지 않았을 때 default 값을 사용
제약조건 확인하기
desc table_name
select * from user_constraints;
비교해 가며 제약조건 확인 가능
- 의미
현재 저장되어 있는 테이블에 걸려있는 제약조건을 확인 할 수 있다.
P : PRIMARY KEY
R : FOREIGN KEY
U : UNIQUE
C : CKECK, NOT NULL
예제)
check 제약조건
default 제약조건
제약조건 지정하기
- 컬럼 레벨 제약 조건
하나의 컬럼에 제약 조건 지정
예제)
- 테이블 레벨 제약 조건
테이블 정의시 생성된 모든 컬럼에 대해 지정하는 제약 조건
모든 컬럼을 생성하고 테이블 정의 직전에 제약 조건 지정
(NOT NULL은 테이블 레벨에서 지정 불가)
casecade 옵션
cascade 옵션은 부모 테이블과 자식 테이블 간의 참조 설정이 되어 있ㅇ르 때 부모 테이블의 제약 조건을 비활성화 하면 이를 참조하고 있는 자식 테이블의 제약 조건까지 같이 비활성화 시켜 주는 옵션이다.
부모 테이블이 제약 조건을 삭제하면 참조하고 있는 자식 테이브르이 제약 조건도 같이 삭제된다.
쉽게 말해, 부모 자식 테이블 간의 제약조건의 연동을 뜻한다.