개요
데이터베이스를 운영하다 보면 특정 열에 저장된 값을 일괄적으로 변경해야 하는 경우가 자주 발생합니다. 예를 들어, 누락된 정보를 임시로 'None'으로 저장해 두었다가 나중에 'N/A'로 정리하고 싶을 수 있습니다. 이 글에서는 MySQL의 UPDATE 문과 WHERE 절을 활용해 'None' 값을 'N/A'로 변경하는 과정을 단계별로 살펴보겠습니다.
1. 테이블 생성하기
먼저 예제에 사용할 테이블을 생성합니다.
mysql> create table DemoTable1903
(
FirstName varchar(20),
LastName varchar(20) ,
Age int
);
Query OK, 0 rows affected (0.00 sec)
테이블은 이름(FirstName), 성(LastName), 나이(Age) 세 개의 열로 구성되어 있습니다.
2. 레코드 삽입하기
INSERT 명령어를 사용해 테이블에 데이터를 입력합니다. 여기서는 FirstName 열에 'None'이라는 문자열이 들어간 레코드를 의도적으로 추가했습니다.
mysql> insert into DemoTable1903 values('John','Smith',23);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1903 values('None','Miller',28);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1903 values('None','Taylor',26);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1903 values('Chris','Brown',26);
Query OK, 1 row affected (0.00 sec)3. 현재 데이터 확인하기
SELECT 문으로 테이블의 전체 레코드를 조회해 봅니다.
mysql> select * from DemoTable1903;
실행 결과는 다음과 같습니다.
+-----------+----------+------+
| FirstName | LastName | Age |
+-----------+----------+------+
| John | Smith | 23 |
| None | Miller | 28 |
| None | Taylor | 26 |
| Chris | Brown | 26 |
+-----------+----------+------+
4 rows in set (0.00 sec)
현재 FirstName 열에 'None' 값이 2건 존재하는 것을 확인할 수 있습니다.
4. UPDATE 문으로 None 값을 N/A로 변경하기
UPDATE 문에 WHERE 절을 함께 사용하면 조건에 맞는 행만 선택적으로 수정할 수 있습니다. 아래 쿼리는 FirstName이 'None'인 레코드만 골라 'N/A'로 변경합니다.
mysql> update DemoTable1903 set FirstName='N/A' where FirstName='None';
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2 Changed: 2 Warnings: 0
실행 결과를 보면 2개의 행이 매칭되었고, 2개의 행이 실제로 변경되었음을 알 수 있습니다.
참고: WHERE 절을 생략하면 테이블의 모든 행이 수정되므로, UPDATE 문을 사용할 때는 반드시 조건을 지정하는 습관을 들이는 것이 좋습니다.
5. 변경 결과 확인하기
다시 SELECT 문을 실행해 변경된 데이터를 확인합니다.
mysql> select * from DemoTable1903;
결과는 다음과 같습니다.
+-----------+----------+------+
| FirstName | LastName | Age |
+-----------+----------+------+
| John | Smith | 23 |
| N/A | Miller | 28 |
| N/A | Taylor | 26 |
| Chris | Brown | 26 |
+-----------+----------+------+
4 rows in set (0.00 sec)
'None'으로 되어 있던 값들이 모두 'N/A'로 성공적으로 변경된 것을 확인할 수 있습니다.
마무리
이처럼 MySQL에서는 UPDATE 문과 WHERE 절을 조합하면 특정 조건에 해당하는 열의 값을 간단하게 일괄 변경할 수 있습니다. NULL 처리나 더미 데이터 정리 등 실무에서 다양하게 응용할 수 있으니, 위 예제를 참고해 직접 연습해 보시기 바랍니다.