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

MySQL UPDATE 문으로 특정 열의 모든 값을 한 번에 변경하는 방법

개요

MySQL에서 테이블의 특정 열(컬럼)에 있는 모든 값을 한 번에 동일한 값으로 변경하려면 UPDATE 명령어를 사용하면 됩니다. WHERE 절 없이 UPDATE 문을 실행하면 해당 열의 전체 행이 지정한 값으로 일괄 수정됩니다.


기본 문법

UPDATE yourTableName SET yourColumnName = yourValue;

위 문법에서 yourTableName은 대상 테이블 이름, yourColumnName은 변경할 열 이름, yourValue는 설정할 값입니다. WHERE 조건을 생략하면 테이블의 모든 행에 적용됩니다.


예제 테이블 생성

실제 동작을 확인하기 위해 예제 테이블을 먼저 생성해 보겠습니다.

mysql> CREATE TABLE setAllValuesDemo (
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Name varchar(20),
    -> Amount int
    -> );
Query OK, 0 rows affected (0.64 sec)

위 쿼리로 Id, Name, Amount 세 개의 열을 가진 테이블이 생성되었습니다.


샘플 데이터 삽입

INSERT 명령어를 사용해 몇 개의 레코드를 추가합니다.

mysql> INSERT INTO setAllValuesDemo(Name, Amount) VALUES('John', 2345);
Query OK, 1 row affected (0.22 sec)
mysql> INSERT INTO setAllValuesDemo(Name, Amount) VALUES('Carol', 47586);
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO setAllValuesDemo(Name, Amount) VALUES('Bob', 95686);
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO setAllValuesDemo(Name, Amount) VALUES('David', 95667);
Query OK, 1 row affected (0.15 sec)

현재 데이터 확인

SELECT 문으로 테이블의 전체 레코드를 조회해 보겠습니다.

mysql> SELECT * FROM setAllValuesDemo;

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

+----+-------+--------+
| Id | Name  | Amount |
+----+-------+--------+
| 1  | John  | 2345   |
| 2  | Carol | 47586  |
| 3  | Bob   | 95686  |
| 4  | David | 95667  |
+----+-------+--------+
4 rows in set (0.00 sec)

단일 열의 모든 값 일괄 변경

이제 Amount 열의 모든 값을 10500으로 변경하는 UPDATE 쿼리를 실행합니다.

mysql> UPDATE setAllValuesDemo SET Amount = 10500;
Query OK, 4 rows affected (0.20 sec)
Rows matched: 4 Changed: 4 Warnings: 0

실행 결과를 보면 4개 행이 모두 매칭되었고, 4개 행이 성공적으로 변경된 것을 확인할 수 있습니다.


변경 결과 검증

다시 SELECT 문을 실행하여 변경 사항을 확인합니다.

mysql> SELECT * FROM setAllValuesDemo;

모든 행의 Amount 값이 10500으로 변경된 것을 볼 수 있습니다.

+----+-------+--------+
| Id | Name  | Amount |
+----+-------+--------+
| 1  | John  | 10500  |
| 2  | Carol | 10500  |
| 3  | Bob   | 10500  |
| 4  | David | 10500  |
+----+-------+--------+
4 rows in set (0.00 sec)

주의사항

WHERE 절 없이 UPDATE 문을 실행하면 테이블의 모든 행이 영향을 받습니다. 따라서 실무 환경에서는 실행 전에 반드시 백업을 하거나, SELECT 문으로 먼저 대상 데이터를 확인한 후 진행하는 것이 안전합니다. 또한 MySQL에서 safe update 모드가 활성화되어 있다면 WHERE 절 없는 UPDATE 문이 거부될 수 있으니 참고하세요.