MySQL에는 실제 BOOLEAN 데이터 타입이 존재하지 않습니다. 하지만 TRUE 또는 true, FALSE 또는 false 키워드를 사용하면 MySQL 문장에서 불리언(Boolean) 값을 손쉽게 입력할 수 있습니다.
내부적으로 MySQL은 TRUE를 1로, FALSE를 0으로 처리합니다. 즉, 불리언 값은 사실상 TINYINT(1) 형태의 숫자 값으로 저장되는 것입니다.
예제
mysql> Select TRUE,FALSE; +------+-------+ | TRUE | FALSE | +------+-------+ | 1 | 0 | +------+-------+ 1 row in set (0.00 sec) mysql> Select true,false; +------+-------+ | TRUE | FALSE | +------+-------+ | 1 | 0 | +------+-------+ 1 row in set (0.00 sec)
위 실행 결과에서 확인할 수 있듯이, 대소문자 구분 없이 TRUE/true는 1로, FALSE/false는 0으로 반환됩니다.
정리
- MySQL은 별도의 BOOLEAN 데이터 타입을 제공하지 않습니다.
TRUE와FALSE는 각각 숫자 1과 0의 별칭(alias)입니다.- 컬럼 정의 시
BOOLEAN또는BOOL을 사용하면 내부적으로TINYINT(1)로 생성됩니다.