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

MySQL에서 부울(Boolean) 필드를 추가하는 방법

MySQL 부울 필드 추가하기

MySQL에서 부울(Boolean) 타입의 필드를 추가하려면 tinyint(1), bool, 또는 boolean을 사용할 수 있습니다. 이 세 가지는 모두 동의어(synonym)로 취급됩니다.

만약 bool이나 boolean 데이터 타입을 사용하면, MySQL은 내부적으로 이를 tinyint(1)로 변환하여 저장합니다.

PHP에서의 참과 거짓 표현

PHP에서는 값 0이 거짓(false)을 나타내고, 1이 참(true)을 나타냅니다. 0을 제외한 다른 모든 숫자도 참으로 간주됩니다.

테이블 생성으로 내부 표현 확인하기

이제 실제로 테이블을 만들어서 bool 또는 boolean이 내부적으로 어떻게 저장되는지 확인해 보겠습니다. 테이블을 생성하는 쿼리는 다음과 같습니다.

mysql> create table AddBoolDemo
-> (
-> isToggle bool
-> );
Query OK, 0 rows affected (1.24 sec)

테이블 DDL 확인

생성된 테이블의 DDL(Data Definition Language)을 확인하려면 아래 쿼리를 사용합니다.

SHOW CREATE TABLE yourTableName;

bool이 내부적으로 tinyint(1)로 변환되는 것을 확인해 보겠습니다. AddBoolDemo 테이블에 대해 실행해 봅니다.

mysql> show create table AddBoolDemo\G

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

*************************** 1. row ***************************
Table: AddBoolDemo
Create Table: CREATE TABLE `addbooldemo` (
`isToggle` tinyint(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

위 출력 결과에서 볼 수 있듯이, bool로 선언한 필드가 실제로는 tinyint(1)로 정의된 것을 확인할 수 있습니다.

true, false 값 삽입하기

이제 INSERT 명령을 사용하여 테이블에 true, false, 그리고 숫자 리터럴인 1, 0을 각각 삽입해 보겠습니다.

mysql> insert into AddBoolDemo values(true);
Query OK, 1 row affected (0.19 sec)

mysql> insert into AddBoolDemo values(false);
Query OK, 1 row affected (0.19 sec)

mysql> insert into AddBoolDemo values(1);
Query OK, 1 row affected (0.10 sec)

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

저장된 데이터 확인

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

mysql> select *from AddBoolDemo;

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

+----------+
| isToggle |
+----------+
| 1        |
| 0        |
| 1        |
| 0        |
+----------+
4 rows in set (0.00 sec)

결과를 보면 true1은 모두 1로, false0은 모두 0으로 저장된 것을 확인할 수 있습니다. 즉, MySQL에서 부울 값은 결국 0과 1의 정수로 처리됩니다.