Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 0, 1, NULL 값을 저장하기에 가장 적합한 데이터 타입은 무엇일까?

MySQL에서 0, 1, NULL 세 가지 값을 저장하려면 TINYINT(1) UNSIGNED NULL 데이터 타입을 사용하는 것이 가장 좋습니다. TINYINT는 1바이트만 차지하는 작은 정수형으로, 불리언(Boolean) 형태의 값이나 상태 플래그를 저장할 때 저장 공간을 효율적으로 사용할 수 있습니다.

기본 문법

yourColumnName TINYINT(1) UNSIGNED NULL;

테이블 생성 예제

위 문법을 실제로 이해하기 위해 테이블을 하나 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table StoreValue0and1orNULLDemo
   -> (
   -> isDigit TINYINT(1) UNSIGNED NULL
   -> );
Query OK, 0 rows affected (0.63 sec)

데이터 삽입

이제 INSERT 명령을 사용하여 0, 1, NULL 값을 테이블에 삽입할 수 있습니다. 쿼리는 다음과 같습니다.

mysql> insert into StoreValue0and1orNULLDemo values(0);
Query OK, 1 row affected (0.18 sec)
mysql> insert into StoreValue0and1orNULLDemo values(1);
Query OK, 1 row affected (0.18 sec)
mysql> insert into StoreValue0and1orNULLDemo values(NULL);
Query OK, 1 row affected (0.11 sec)

결과 확인

SELECT 문을 사용하여 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from StoreValue0and1orNULLDemo;

실행 결과는 다음과 같습니다.

+---------+
| isDigit |
+---------+
|       0 |
|       1 |
|    NULL |
+---------+
3 rows in set (0.00 sec)

정리

TINYINT(1) UNSIGNED NULL을 사용하면 0과 1은 물론 NULL 값까지 문제없이 저장할 수 있습니다. 컬럼 정의 시 NULL 옵션을 명시하지 않으면 기본적으로 NULL 입력이 허용되지만, 의도를 명확히 하기 위해 명시적으로 선언해 주는 것이 좋습니다. 또한 UNSIGNED 옵션을 지정하면 음수 범위를 제거하여 0부터 255까지의 양수만 저장하게 되므로, 참/거짓 판별 용도로 더욱 적합합니다.