MySQL에서 단 1비트의 값을 저장하려면 가장 작은 데이터 타입인 BIT(1)를 사용할 수 있습니다. BIT(1)은 정확히 1비트만 저장하므로 참/거짓과 같은 불리언 형태의 값을 효율적으로 다룰 때 유용합니다.
BIT(1) 기본 문법
yourColumnName bit(1)
테이블 생성 예제
문법을 실제로 이해하기 위해 간단한 테이블을 만들어 보겠습니다. 아래 쿼리로 테이블을 생성할 수 있습니다.
mysql> create table bitDemo
-> (
-> isValid bit(1)
-> );
Query OK, 0 rows affected (0.49 sec)
SHOW CREATE로 테이블 구조 확인
이제 SHOW CREATE 명령어를 사용해 테이블의 모든 세부 정보를 확인할 수 있습니다.
mysql> show create table bitDemo;
실행 결과는 다음과 같습니다.
+---------+-----------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+---------+-----------------------------------------------------------------------------------------------------------------------------+
| bitDemo | CREATE TABLE `bitdemo` (`isValid` bit(1) DEFAULT NULL) ENGINE =InnoDB DEFAULT CHARSET =utf8mb4 COLLATE =utf8mb4_0900_ai_ci |
+---------+-----------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
데이터 삽입하기
INSERT 명령어를 사용해 테이블에 여러 레코드를 삽입해 보겠습니다.
mysql> insert into bitDemo values(0);
Query OK, 1 row affected (0.13 sec)
mysql> insert into bitDemo values(1);
Query OK, 1 row affected (0.10 sec)
mysql> insert into bitDemo values(1);
Query OK, 1 row affected (0.07 sec)
mysql> insert into bitDemo values(0);
Query OK, 1 row affected (0.14 sec)
저장된 레코드 조회하기
SELECT 문으로 테이블의 모든 레코드를 조회합니다.
mysql> select *from bitDemo;
실행 결과는 다음과 같습니다.
+---------+
| isValid |
+---------+
| |
| |
| |
| |
+---------+
4 rows in set (0.00 sec)
출력 결과를 보면 비트 값이 화면에 제대로 표시되지 않는 것을 알 수 있습니다. 이는 비트 타입이 바이너리 형태로 저장되기 때문입니다.
비트 값을 숫자로 확인하는 방법
실제 비트 값을 확인하려면 컬럼 이름에 +0을 붙여 숫자로 변환하여 조회하면 됩니다.
mysql> select isValid+0 from bitDemo;
실행 결과는 다음과 같습니다.
+-----------+
| isValid+0 |
+-----------+
| 0 |
| 1 |
| 1 |
| 0 |
+-----------+
4 rows in set (0.00 sec)
이처럼 MySQL에서 1비트를 저장할 때는 BIT(1)이 가장 작고 적합한 데이터 타입이며, 값을 확인할 때는 +0 연산을 활용하면 편리합니다.