# [데이터베이스] 제약조건(CONSTRAINT)

## 제약조건이란

사용자가 원하는 조건의 데이터만 유지하기 위한(데이터의 무결성을 유지하기 위한) 데이터베이스의 보편적인 방법으로 테이블의 특정 컬럼에 설정하는 제약이다.

## 종류

| 구분 | 설명 |
| --- | --- |
| PRIMARY KEY (기본 키) | 고유 식별 기본키 하나의 테이블에 하나의 기본 키 제약을 정의할 수 있다. 기본키 제약 정의시, DBMS에서는 자동으로 UNIQUE 인덱스를 생성함.  기본키 제약 == 고유키 제약 && NOT NUL 제약 |
| UNIQUE KEY(고유 키) | 고유키 NULL은 고유 키 제약의 대상이 아님 => NULL을 가진 여러 행이 존재할 수 있다. |
| NOT NULL | NULL 값의 입력을 금지한다. NOT NULL을 CHECK의 일부분으로도 이해할 수도 있다. |
| CHECK | 입력할 수 있는 값의 범위를 제한함. TRUE OR FALSE 로 평가할 수 있는 논리식을 지정해야 함. |
| FOREIGN KEY(외래 키) | 테이블 간의 관계를 정의하기 위해 기본키를 다른 테이블의 외래키로 복사하는 경우 외래키가 생성됨 외래키 지정시 참조 무결성 제약 옵션을 선택할 수 있음 |

Referece. [SQL 전문가 가이드](https://www.yes24.com/Product/Goods/90613346)

For the site tree, see the [root Markdown](https://slashpage.com/koa.md).
