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

MySQL에서 1비트를 저장하기 위한 가장 작은 데이터 타입은 무엇일까?

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 연산을 활용하면 편리합니다.