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

+ Recent posts