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

MySQL 단일 쿼리로 여러 레코드 업데이트하기 – UPDATE 문 완벽 가이드

MySQL에서는 UPDATE 문 하나만으로 한 레코드의 여러 컬럼을 동시에 수정할 수 있습니다. 이 글에서는 실제 예제를 통해 테이블 생성부터 데이터 삽입, 그리고 단일 쿼리로 여러 값을 업데이트하는 과정까지 단계별로 살펴보겠습니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성합니다. 아래 쿼리는 자동 증가되는 기본키(Id)와 세 개의 점수 컬럼(Marks1, Marks2, Marks3)으로 구성된 테이블을 만듭니다.

mysql> create table DemoTable
    -> (
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Marks1 int,
    -> Marks2 int,
    -> Marks3 int
    -> );
Query OK, 0 rows affected (0.60 sec)

2. 샘플 데이터 삽입하기

INSERT 명령어를 사용해 테이블에 레코드를 추가합니다.

mysql> insert into DemoTable(Marks1,Marks2,Marks3) values(45,67,34);
Query OK, 1 row affected (0.33 sec)
mysql> insert into DemoTable(Marks1,Marks2,Marks3) values(89,87,56);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(Marks1,Marks2,Marks3) values(87,56,54);
Query OK, 1 row affected (0.31 sec)

3. 저장된 데이터 확인하기

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다.

+----+--------+--------+--------+
| Id | Marks1 | Marks2 | Marks3 |
+----+--------+--------+--------+
|  1 |     45 |     67 |     34 |
|  2 |     89 |     87 |     56 |
|  3 |     87 |     56 |     54 |
+----+--------+--------+--------+
3 rows in set (0.00 sec)

4. 단일 쿼리로 여러 값 업데이트하기

이제 핵심인 UPDATE 문입니다. SET 절에 여러 컬럼과 새 값을 쉼표(,)로 구분하여 나열하면, WHERE 조건에 해당하는 레코드의 여러 필드를 한 번에 수정할 수 있습니다.

mysql> update DemoTable
    -> set Marks1=98,Marks2=96,Marks3=99
    -> where Id=1;
Query OK, 1 row affected (0.18 sec)
Rows matched: 1 Changed: 1 Warnings: 0

위 쿼리는 Id가 1인 레코드의 Marks1, Marks2, Marks3 세 개 컬럼을 각각 98, 96, 99로 변경합니다. 실행 결과 메시지에서 'Rows matched: 1 Changed: 1'은 조건에 일치한 1개 행이 성공적으로 수정되었음을 의미합니다.

5. 업데이트 결과 검증하기

다시 SELECT 문을 실행해 변경 사항이 제대로 반영되었는지 확인합니다.

mysql> select *from DemoTable;

결과를 보면 Id가 1인 첫 번째 레코드의 세 컬럼 값이 모두 변경된 것을 확인할 수 있습니다.

+----+--------+--------+--------+
| Id | Marks1 | Marks2 | Marks3 |
+----+--------+--------+--------+
|  1 |     98 |     96 |     99 |
|  2 |     89 |     87 |     56 |
|  3 |     87 |     56 |     54 |
+----+--------+--------+--------+
3 rows in set (0.00 sec)

정리 및 활용 팁

MySQL의 UPDATE 문은 SET 절에 쉼표로 구분된 여러 개의 '컬럼=값' 쌍을 지정함으로써 단일 쿼리로 여러 필드를 동시에 업데이트할 수 있습니다. 몇 가지 유용한 팁은 다음과 같습니다.

- WHERE 절 생략 주의: WHERE 조건을 지정하지 않으면 테이블의 모든 레코드가 수정되므로 반드시 조건을 확인하세요.
- 여러 레코드 동시 수정: WHERE 절의 조건을 넓히면(예: WHERE Id IN (1,2,3)) 여러 레코드도 한 번에 업데이트할 수 있습니다.
- CASE 문 활용: 레코드마다 서로 다른 값을 적용해야 한다면 CASE 표현식을 함께 사용하면 됩니다.