MySQL에서는 UPDATE 문의 SET 절에 여러 열과 값을 쉼표(,)로 나열하면, 단일 쿼리만으로 테이블의 여러 열을 원하는 값으로 동시에 수정할 수 있습니다. 아래 예제를 통해 실제 동작 과정을 단계별로 살펴보겠습니다.
1. 예제 테이블 생성
먼저 실습에 사용할 테이블을 생성합니다.
mysql> create table DemoTable
(
ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
ClientName varchar(40),
ClientAge int,
ClientCountryName varchar(40)
);
Query OK, 0 rows affected (0.57 sec)
ClientId는 자동 증가(AUTO_INCREMENT) 기본키로 설정되어 있으며, 고객 이름·나이·국가 정보를 저장하는 열들이 함께 정의되어 있습니다.
2. 샘플 데이터 삽입
INSERT 명령어를 사용해 몇 개의 레코드를 추가합니다.
mysql> insert into DemoTable(ClientName,ClientAge,ClientCountryName) values('Chris',25,'US');
Query OK, 1 row affected (0.33 sec)
mysql> insert into DemoTable(ClientName,ClientAge,ClientCountryName) values('Bob',55,'UK');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable(ClientName,ClientAge,ClientCountryName) values('David',45,'AUS');
Query OK, 1 row affected (0.14 sec)
3. 현재 데이터 확인
SELECT 문으로 테이블의 전체 레코드를 조회해 보겠습니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+----------+------------+-----------+-------------------+ | ClientId | ClientName | ClientAge | ClientCountryName | +----------+------------+-----------+-------------------+ | 1 | Chris | 25 | US | | 2 | Bob | 55 | UK | | 3 | David | 45 | AUS | +----------+------------+-----------+-------------------+ 3 rows in set (0.00 sec)
4. 단일 쿼리로 여러 열 값 변경하기
이제 핵심인 UPDATE 쿼리입니다. SET 절에 여러 열의 값을 쉼표로 구분하여 지정하고, WHERE 절로 대상 행을 특정하면 됩니다.
mysql> update DemoTable
set ClientName='Sam',ClientAge=48,ClientCountryName='AUS' where ClientId=2;
Query OK, 1 row affected (0.22 sec)
Rows matched : 1 Changed : 1 Warnings : 0
위 쿼리는 ClientId가 2인 행의 세 개 열(ClientName, ClientAge, ClientCountryName)을 각각 'Sam', 48, 'AUS'로 한 번에 변경합니다.
5. 변경 결과 확인
테이블을 다시 조회해 업데이트가 정상적으로 적용되었는지 확인합니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+----------+------------+-----------+-------------------+ | ClientId | ClientName | ClientAge | ClientCountryName | +----------+------------+-----------+-------------------+ | 1 | Chris | 25 | US | | 2 | Sam | 48 | AUS | | 3 | David | 45 | AUS | +----------+------------+-----------+-------------------+ 3 rows in set (0.00 sec)
ClientId가 2인 행의 이름은 'Sam'으로, 나이는 48로, 국가는 'AUS'로 모두 변경된 것을 확인할 수 있습니다.
핵심 정리
- UPDATE 문의 SET 절에서
열1=값1, 열2=값2, ...형태로 쉼표로 구분하면 여러 열을 동시에 수정할 수 있습니다. - WHERE 절을 생략하면 테이블의 모든 행이 변경되므로, 반드시 조건을 지정해야 안전합니다.
- 쿼리 실행 후 'Rows matched'와 'Changed' 값을 통해 실제로 영향을 받은 행 수를 확인할 수 있습니다.