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

MySQL에서 BOOLEAN 값 업데이트하는 방법 – UPDATE 문 활용 가이드

MySQL에서는 UPDATE 명령을 사용해 불리언(BOOLEAN) 값을 손쉽게 업데이트할 수 있습니다. 흥미로운 점은 BOOLEAN 데이터 타입을 사용하면 MySQL이 내부적으로 이를 tinyint(1)로 변환한다는 것입니다. 따라서 true 리터럴은 tinyint(1)의 1로, false 리터럴은 0으로 처리됩니다.

기본 문법

불리언 값을 업데이트할 때 사용하는 기본적인 UPDATE 문법은 다음과 같습니다.

UPDATE yourTableName SET yourColumnName = yourValue WHERE yourCondition;

예제 테이블 생성

위 문법을 실제로 이해하기 위해 예제 테이블을 먼저 만들어 보겠습니다. 아래 쿼리는 isSuccessful이라는 BOOLEAN 컬럼을 가진 테이블을 생성합니다.

mysql> create table UpdateBooleans
    -> (
    -> Id int NOT NULL AUTO_INCREMENT,
    -> isSuccessful BOOLEAN,
    -> PRIMARY KEY(Id)
    -> );
Query OK, 0 rows affected (1.55 sec)

테스트 데이터 삽입

INSERT 명령을 사용해 true와 false 값을 번갈아 여러 개 삽입해 보겠습니다.

mysql> insert into UpdateBooleans(isSuccessful) values(true);
Query OK, 1 row affected (0.17 sec)

mysql> insert into UpdateBooleans(isSuccessful) values(false);
Query OK, 1 row affected (0.21 sec)

mysql> insert into UpdateBooleans(isSuccessful) values(true);
Query OK, 1 row affected (0.13 sec)

mysql> insert into UpdateBooleans(isSuccessful) values(false);
Query OK, 1 row affected (0.15 sec)

mysql> insert into UpdateBooleans(isSuccessful) values(false);
Query OK, 1 row affected (0.24 sec)

mysql> insert into UpdateBooleans(isSuccessful) values(false);
Query OK, 1 row affected (0.17 sec)

mysql> insert into UpdateBooleans(isSuccessful) values(true);
Query OK, 1 row affected (0.12 sec)

삽입된 데이터 확인

SELECT 문으로 테이블의 모든 레코드를 조회하면 다음과 같습니다.

mysql> select *from UpdateBooleans;

실행 결과는 아래와 같습니다. true는 1로, false는 0으로 저장된 것을 확인할 수 있습니다.

+----+--------------+
| Id | isSuccessful |
+----+--------------+
| 1  | 1            |
| 2  | 0            |
| 3  | 1            |
| 4  | 0            |
| 5  | 0            |
| 6  | 0            |
| 7  | 1            |
+----+--------------+
7 rows in set (0.00 sec)

BOOLEAN 값 업데이트하기

이제 본격적으로 불리언 값을 업데이트해 보겠습니다. 아래 쿼리는 isSuccessful 값이 false(0)인 모든 레코드를 true(1)로 변경합니다.

mysql> update UpdateBooleans set isSuccessful = true where isSuccessful = false;
Query OK, 4 rows affected (0.15 sec)
Rows matched: 4 Changed: 4 Warnings: 0

총 4개의 행이 일치했고, 4개의 행이 성공적으로 변경되었습니다.

업데이트 결과 확인

변경이 제대로 적용되었는지 다시 한번 SELECT 문으로 확인해 보겠습니다.

mysql> select *from UpdateBooleans;

결과를 보면 모든 레코드의 값이 1(true)로 업데이트된 것을 알 수 있습니다.

+----+--------------+
| Id | isSuccessful |
+----+--------------+
| 1  | 1            |
| 2  | 1            |
| 3  | 1            |
| 4  | 1            |
| 5  | 1            |
| 6  | 1            |
| 7  | 1            |
+----+--------------+
7 rows in set (0.00 sec)

정리

MySQL에서 BOOLEAN 값 업데이트는 일반적인 UPDATE 문법과 동일하게 수행할 수 있습니다. 핵심 포인트를 정리하면 다음과 같습니다.

  • MySQL의 BOOLEAN은 내부적으로 tinyint(1)로 저장됩니다.
  • true는 1, false는 0에 해당합니다.
  • WHERE 조건절을 활용하면 특정 조건에 맞는 행만 선택적으로 업데이트할 수 있습니다.