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

MySQL에서 특정 열의 값만 업데이트하는 방법

MySQL에서는 UPDATE 문과 WHERE 절을 함께 사용하면 전체 행이 아닌 특정 열의 값만 선택적으로 수정할 수 있습니다. 이 글에서는 예제를 통해 하나의 열 값만 업데이트하는 방법을 단계별로 살펴보겠습니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable770 (
   Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   Value int
);
Query OK, 0 rows affected (0.65 sec)

AUTO_INCREMENT로 설정된 Id 열과, 실제 값을 저장할 Value 열로 구성된 간단한 테이블입니다.

2. 샘플 데이터 삽입하기

INSERT 명령을 사용하여 테이블에 여러 개의 레코드를 추가합니다.

mysql> insert into DemoTable770(Value) values(10);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable770(Value) values(90);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable770(Value) values(160);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable770(Value) values(450);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable770(Value) values(560);
Query OK, 1 row affected (0.21 sec)

3. 현재 데이터 확인하기

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

mysql> select *from DemoTable770;

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

+----+-------+
| Id | Value |
+----+-------+
|  1 |    10 |
|  2 |    90 |
|  3 |   160 |
|  4 |   450 |
|  5 |   560 |
+----+-------+
5 rows in set (0.00 sec)

4. 단일 열 값 업데이트하기

이제 특정 조건에 해당하는 행의 한 열 값만 수정하는 쿼리를 실행합니다. WHERE 절로 Id가 4인 행을 지정하고, 해당 행의 Value 값을 기존 값보다 150 증가시킵니다.

mysql> update DemoTable770
   set Value=Value+150
   where Id=4;
Query OK, 1 row affected (0.52 sec)
Rows matched: 1 Changed: 1 Warnings: 0

여기서 핵심은 set Value=Value+150처럼 열 자신의 현재 값을 참조하여 새로운 값을 계산할 수 있다는 점입니다. 또한 WHERE 절을 생략하면 테이블의 모든 행이 변경되므로, 특정 행만 수정하려면 반드시 조건을 지정해야 합니다.

5. 업데이트 결과 확인하기

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

mysql> select *from DemoTable770;

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

+----+-------+
| Id | Value |
+----+-------+
|  1 |    10 |
|  2 |    90 |
|  3 |   160 |
|  4 |   600 |
|  5 |   560 |
+----+-------+
5 rows in set (0.00 sec)

Id가 4인 행의 Value 값이 450에서 600으로 정확히 150 증가한 것을 확인할 수 있으며, 나머지 행은 그대로 유지되었습니다. 이처럼 UPDATE 문에 적절한 WHERE 조건을 사용하면 원하는 열의 값만 안전하게 수정할 수 있습니다.