더북(TheBook)

BOOLEAN 데이터 타입

SQL 표준은 BOOLEAN 타입을 선택 옵션으로 명시하고, BOOLEAN 타입은 다음 값을 가질 수 있다고 명시했다.

• TRUE

• FALSE

• UNKNOWN 또는 NULL(NOT NULL 제약 조건으로 걸리지 않는다면)

DBMS는 NULL을 UNKNOWN으로 해석한다(표준에는 BOOLEAN 타입 값으로 UNKNOWN과 NULL, 또는 둘 모두를 지원해야 하는지가 명시되어 있지 않다). 그리고 TRUE가 FALSE보다 큰 값으로 정의되어 있다.

DBMS별 구현 내용은 다음과 같다.

• DB2 : BOOLEAN 타입을 지원하지 않는다.

• 액세스 : 널이 아닌 Yes/No 타입을 제공한다.

• SQL Server : BOOLEAN 타입을 지원하지 않지만, 대안으로 BIT 타입(0, 1, NULL의 값을 가질 수 있음)이 있다.

• MySQL : BOOLEAN 타입을 지원하지만 표준을 따르지도 않는다(TINYINT(1) 타입의 별칭이다).

• 오라클 : BOOLEAN 타입을 지원하지 않는다.

• PostgreSQL : 표준을 따른다. NULL을 BOOLEAN 값으로 쓸 수 있지만 UNKNOWN은 사용할 수 없다.