MySQL에서는 UPDATE 문과 산술 연산자를 활용하면 특정 행의 열 값을 손쉽게 증가시킬 수 있습니다. 이 글에서는 실제 예제를 통해 테이블 생성부터 데이터 삽입, 값 증가까지 전 과정을 단계별로 살펴보겠습니다.
1. 테이블 생성하기
먼저 예제에 사용할 테이블을 생성합니다.
mysql> create table DemoTable
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name varchar(100),
-> Score int
-> );
Query OK, 0 rows affected (0.78 sec)
2. 데이터 삽입하기
INSERT 명령을 사용해 몇 개의 레코드를 추가합니다.
mysql> insert into DemoTable(Name,Score) values('John',68);
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable(Name,Score) values('Carol',98);
Query OK, 1 row affected (0.27 sec)
mysql> insert into DemoTable(Name,Score) values('David',89);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable(Name,Score) values('Robert',67);
Query OK, 1 row affected (0.14 sec)3. 저장된 레코드 확인하기
SELECT 문으로 테이블의 모든 레코드를 조회합니다.
mysql> select *from DemoTable;
출력 결과
+----+--------+-------+
| Id | Name | Score |
+----+--------+-------+
| 1 | John | 68 |
| 2 | Carol | 98 |
| 3 | David | 89 |
| 4 | Robert | 67 |
+----+--------+-------+
4 rows in set (0.00 sec)
4. 열 값을 1 증가시키는 쿼리 실행하기
특정 열의 값을 1만큼 증가시키려면 아래와 같이 SET Score = Score + 1 형태의 UPDATE 문을 WHERE 절과 함께 사용하면 됩니다. 여기서는 Id가 3인 David의 Score를 증가시켜 보겠습니다.
mysql> update DemoTable set Score=Score+1 where Id=3;
Query OK, 1 row affected (0.22 sec)
Rows matched: 1 Changed: 1 Warnings: 0
참고: WHERE 절을 생략하면 테이블의 모든 행에 대해 값이 증가되므로, 반드시 조건을 지정해 원하는 행만 수정하는 것이 안전합니다.
5. 변경 결과 다시 확인하기
업데이트 후 테이블을 다시 조회해 보겠습니다.
mysql> select *from DemoTable;
출력 결과
+----+--------+-------+
| Id | Name | Score |
+----+--------+-------+
| 1 | John | 68 |
| 2 | Carol | 98 |
| 3 | David | 90 |
| 4 | Robert | 67 |
+----+--------+-------+
4 rows in set (0.00 sec)
위 출력 결과에서 확인할 수 있듯이, Id가 3인 David의 Score가 89에서 90으로 정상적으로 1 증가했습니다. 이처럼 UPDATE ... SET 열명 = 열명 + 증가값 패턴을 활용하면 기존 값을 기준으로 원하는 만큼 값을 조정할 수 있습니다.