728x90
반응형
SMALL
제약조건이란?
- 테이블의 해당 열에 사용자가 원치 않은 데이터가 입력/수정/삭제되는 것을 방지하기 위한 조건
- 제약조건에 종속성이 존재할 경우 테이블의 삭제를 방지
select * from user_constraints;
1. 제약조건 정의
- 테이블 레벨 제약조건을 정의할 수 있음
- 열 레벨 제약조건을 정의할 수 있음
CREATE TABLE [schema.] table(
column datatype [DEFUALT expr] [column_constraint],
...,
[table_constraint]
);
2. 열 레벨 제약조건
- 열별로 제약 조건 정의
- 무결성 제약조건의 어떤 유형도 정의 가능.
column datatype [DEFUALT expr]
[CONSTARINT constraint_name] constraint_type,
3. 테이블 레벨 제약조건
- 하나 이상의 열을 참조하고, 테이블의 열 정의와는 개별적으로 정의
- not null은 열레벨 제약조건으로만 가능
제약조건 종류
1. NOT NULL
- null 값을 가질 수 없음
- 열 레벨 제약조건으로만 설정 가능
2. PRIMARY KEY
- 값들이 유일해야 함
- null값을 가질 수 없음
3. UNIQUE
- 값들이 유일해야 함
- null값 가질 수 있음
4. FOREIGN KEY
- 테이블간의 관계 설정
5. CHECK
- 각 행을 만족해야 하는 조건 정의
제약조건 관리
- 제약 조건의 추가 또는 삭제는 가능.
- 수정을 불가능
- 제약조건의 활서화/비활성화 가능
- MODIFY 절을 사용해 not null조건 추가
1. 제약조건 추가
ALTER TABLE table_name
ADD [CONSTRAINT constraint_name] type(column);
2. 제약조건 조회
- 모든 제약조건 정의와 이름을 보기 위해 user_constraints 테이블을 질의
- user_cons_columns 뷰에서 제약조건 이름과 관련된 열 보기 가능
3. 제약조건 삭제
ALTER TABLE table_name
DROP PRIMARY KEY
| UNIQUE (column)
| CONSTRAINT constraint_name
[CASCADE];
4. 제약조건 비활성화
- 무결성 제약조건을 비활성화하기 위해 alter table문장의 disable 절을 실행
- 종속적인 무결성 제약조건을 비활성화하기 위해 cascade 옵션 적용
ALTER TABLE table_name
DISABLE [NOVALIDATE | VALIDATE]
CONSTRAINT constraint_name [CASCADE];
5. 제약조건 활성화
- 무결성 제약조건 활성화
ALTER TABLE table_name
ENABLE [NOVALIDATE | VALIDATE]
CONSTRAINT constraint_name;
728x90
반응형
LIST
'IT > SQL' 카테고리의 다른 글
[SQL] 13. 시퀀스, 인덱스, 동의어 (0) | 2023.05.16 |
---|---|
[SQL] 12. 뷰(View) (0) | 2023.05.16 |
[SQL] 10. 테이블 생성과 관리 (0) | 2023.05.15 |
[SQL] 9. 트랜잭션(Transaction) (0) | 2023.05.15 |
[SQL] 8. 데이터 조작(DML) (0) | 2023.05.15 |