MySQL에서는 TINYINT 타입을 불리언(Boolean) 값처럼 활용할 수 있습니다. 일반적으로 true는 1로, false는 0으로 저장되며, 이를 UPDATE 문으로 자유롭게 변경할 수 있습니다. 이번 글에서는 TINYINT 컬럼의 값을 UPDATE 문으로 수정하는 과정을 단계별로 살펴보겠습니다.
1. 테이블 생성
먼저 테이블을 생성하겠습니다. 이때 컬럼 중 하나를 TINYINT 타입으로 설정합니다.
mysql> create table DemoTable
-> (
-> EmployeeId int,
-> isMarried tinyint
-> );
Query OK, 0 rows affected (6.84 sec)
위 예제에서 isMarried 컬럼은 직원의 결혼 여부를 나타내며, TINYINT 타입으로 선언되어 true(1) 또는 false(0) 값을 저장할 수 있습니다.
2. 데이터 삽입
INSERT 명령을 사용하여 테이블에 레코드를 삽입합니다. TINYINT 컬럼에는 true/false 키워드를 그대로 사용할 수 있다는 점에 주목하세요.
mysql> insert into DemoTable values(101,true);
Query OK, 1 row affected (1.94 sec)
mysql> insert into DemoTable values(102,false);
Query OK, 1 row affected (0.76 sec)
mysql> insert into DemoTable values(103,true);
Query OK, 1 row affected (1.14 sec)
mysql> insert into DemoTable values(104,true);
Query OK, 1 row affected (1.22 sec)
3. 데이터 조회
SELECT 문을 사용하여 테이블의 모든 레코드를 확인해 보겠습니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다. true와 false가 각각 1과 0으로 저장된 것을 확인할 수 있습니다.
+------------+----------+
| EmployeeId | isMarried|
+------------+----------+
| 101 | 1 |
| 102 | 0 |
| 103 | 1 |
| 104 | 1 |
+------------+----------+
4 rows in set (0.00 sec)
4. UPDATE 문으로 TINYINT 값 변경하기
이제 TINYINT 컬럼의 값을 수정하는 UPDATE 문을 실행해 보겠습니다. 아래 쿼리는 EmployeeId가 103인 직원의 결혼 여부를 false로 변경합니다.
mysql> update DemoTable
-> set isMarried=false
-> where EmployeeId=103;
Query OK, 1 row affected (1.24 sec)
Rows matched: 1 Changed: 1 Warnings: 0
UPDATE 문 실행 시 WHERE 절을 반드시 지정해야 원하는 레코드만 정확하게 수정할 수 있습니다. WHERE 절을 생략하면 테이블의 모든 행이 변경되므로 주의가 필요합니다.
5. 변경 결과 확인
테이블의 레코드를 다시 한번 조회하여 변경 사항을 확인해 보겠습니다.
mysql> select *from DemoTable;
EmployeeId 103의 isMarried 값이 1에서 0으로 성공적으로 변경된 것을 확인할 수 있습니다.
+------------+----------+
| EmployeeId | isMaried |
+------------+----------+
| 101 | 1 |
| 102 | 0 |
| 103 | 0 |
| 104 | 1 |
+------------+----------+
4 rows in set (0.00 sec)
정리
MySQL에서 TINYINT는 1바이트 크기의 정수 타입으로, 불리언 값을 저장하는 데 널리 사용됩니다. INSERT와 UPDATE 시 true/false 또는 1/0 어느 쪽이든 사용할 수 있으며, 내부적으로 동일한 값으로 처리됩니다. 이처럼 TINYINT 컬럼은 UPDATE 문과 함께 사용해도 전혀 문제가 없으며, 상태 플래그나 참/거짓 데이터를 관리할 때 매우 유용합니다.