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

MySQL UPDATE 쿼리 하나로 여러 열을 특정 값으로 한 번에 변경하는 방법

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' 값을 통해 실제로 영향을 받은 행 수를 확인할 수 있습니다.