다음은 여섯 가지 제약 조건이다.
1. NOT NULL : 기본적으로 테이블 컬럼은 NULL을 가질 수 있다. NOT NULL 제약 조건을 달면 이 컬럼에는 NULL이 아닌 값만 입력된다.
2. UNIQUE : UNIQUE 제약 조건은 특정 필드에 중복 값이 입력되는 것을 방지한다. UNIQUE 제약 조건을 사용하면 기본키가 아닌 특정 컬럼에 중복 값이 들어오는 것을 막는다. PRIMARY KEY 제약 조건과는 달리 UNIQUE 제약 조건은 NULL을 허용한다.
3. PRIMARY KEY : UNIQUE 제약 조건과 유사한 PRIMARY KEY 제약 조건은 테이블에 있는 각 레코드를 유일하게 식별한다. 유일한 값만 입력되게 할 뿐 아니라 NULL이 입력되는 것을 방지한다. 한 테이블에 UNIQUE 제약 조건을 여러 개 만들 수 있는 반면, PRIMARY KEY 제약 조건은 한 개만 만들 수 있다(‘BETTER WAY 1. 모든 테이블에 기본키가 있는지 확인하자’를 참고한다).
4. FOREIGN KEY : 한 테이블에 있는 외래키는 다른 테이블에 있는 기본키가 된다(‘BETTER WAY 6. 참조 무결성을 보호하려면 외래키를 정의하자’를 참고한다).
5. CHECK : CHECK 제약 조건은 한 테이블이나 필드에 정의할 수 있다, 단일 필드에 CHECK 제약 조건을 정의하면 이 필드에는 특정 값만 입력될 수 있다. 테이블에 정의하면 특정 필드 값이 동일한 로우의 다른 필드 값을 기준으로 제한된다.
6. DEFAULT : DEFAULT 절은 한 필드의 기본 값을 정의하는 데 사용된다. 새로운 로우를 입력할 때 해당 필드에 값을 입력하지 않으면 데이터베이스는 기본 값을 입력한다.
Note ≣
기술적으로 SQL 표준에 정의된 내용에 따르면 DEFAULT 절은 제약 조건이 아니다. 하지만 DEFAULT 절은 NOT NULL 제약 조건과 결합해 비즈니스 규칙을 강화하는 수단으로 사용할 수 있다.
Note ≣
SQL Server에서는 유일 인덱스 제약 조건이 있는 컬럼에서 컬럼당 오직 NULL을 한 개만 입력 가능하다. DB2는 WHERE NOT NULL 절을 포함하지 않으면 유일 인덱스 제약 조건이 걸린 컬럼당 NULL을 한 개만 입력할 수 있다.