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

MySQL에서 플래그(Flag) 값 저장에 적합한 데이터 유형은?

MySQL에서 플래그(flag) 값을 저장할 때는 tinyint(1) 데이터 유형을 사용하는 것이 가장 효율적입니다. tinyint는 1바이트만 차지하기 때문에 0(false)과 1(true)로 표현되는 불리언(Boolean) 성격의 플래그 값을 저장하기에 저장 공간 측면에서도 매우 경제적입니다.

기본 문법

플래그 컬럼을 정의할 때는 아래와 같은 문법을 사용합니다.

yourColumnName tinyint(1) DEFAULT 1;

여기서 DEFAULT 1은 별도의 값을 지정하지 않을 경우 기본값으로 1(true)이 저장되도록 설정하는 옵션입니다.

예제 테이블 생성

실제 예제를 통해 확인해 보겠습니다. 먼저 플래그 컬럼을 포함한 테이블을 생성합니다.

mysql> create table DemoTable
(
    ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ClientName varchar(20),
    isMarried tinyint(1) DEFAULT 1
);
Query OK, 0 rows affected (0.64 sec)

위 테이블에서 isMarried 컬럼이 플래그 역할을 하며, 기본값은 1로 설정되어 있습니다.

데이터 삽입

INSERT 명령을 사용해 몇 개의 레코드를 추가해 보겠습니다.

mysql> INSERT INTO DemoTable(ClientName,isMarried) values('Larry',0);
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable(ClientName) values('David');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable(ClientName,isMarried) values('Mike',1);
Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO DemoTable(ClientName) values('Carol');
Query OK, 1 row affected (0.14 sec)

'Larry'와 'Mike'는 값을 직접 지정했고, 'David'와 'Carol'은 isMarried 값을 지정하지 않았습니다. 따라서 이 두 레코드에는 기본값인 1이 자동으로 저장됩니다.

결과 확인

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다. 플래그로 설정된 isMarried 컬럼의 값을 확인할 수 있습니다.

+----------+------------+-----------+
| ClientId | ClientName | isMarried |
+----------+------------+-----------+
| 1        | Larry      | 0         |
| 2        | David      | 1         |
| 3        | Mike       | 1         |
| 4        | Carol      | 1         |
+----------+------------+-----------+
4 rows in set (0.00 sec)

정리

이처럼 MySQL에서 플래그 값을 다룰 때는 tinyint(1)을 사용하면 됩니다. 0과 1로 상태를 명확하게 구분할 수 있으며, 필요에 따라 DEFAULT 절을 활용해 기본값을 지정하면 데이터 입력 시 편의성도 높아집니다.