[MySQL] UPDATE를 이용한 TABLE값 최신화 하는 법!

2020-10-26


 

이름과 같은 정적인 데이터도 존재하겠지만, 나이와 같은 경우는 해가 지날 때마다 +1 씩 늘어가는 동적인 데이터이다. 때문에 이와 같은 데이터들을 최신화해주어야 하는데, 그 기능을 수행하는 것이 바로 UPDATE이다. 

 

때문에 이와 같은 UPDATE를 이용해 전에 사용하던 테이블 정보를 최신화해보도록 하겠다.

 

예제 링크

seeminglyjs.tistory.com/143

초기 값을 보면 HONG 의 나이 25세 / KIM의 나이 33세 / KOKO의 나이 23세 / YOU의 나이 46세 인 것을 알 수 있는데, 2020년에서 2021년으로 넘어가 +1씩 더해 주어야 하는 경우라고, 가정해보자.


사용법이 간단하기 때문에 바로 아래의 코드를 확인해보자.

mysql> UPDATE a SET OLD = OLD + 1;
//최신화 한다. a라는 테이블을 나이는 나이 + 1 로 변경한다.
Query OK, 4 rows affected (0.01 sec)
Rows matched: 4  Changed: 4  Warnings: 0
//정상적으로 4행 모두 변경된 것을 알 수 있다.

위와 같이 정상적으로 나이가 +1 씩 더해져 최신화된 것을 확인할 수 있다.


그렇다면 한 가지 경우를 더 생각해보자. 이름은 보통 정적인 데이터로 볼 수 있지만,  KOKO 씨가 자신의 이름이 마음에 안 들어 개명을 하고 싶어 할 수도 있다. 이와 같은 경우에는 WHERE 문을 통해 조건을 달아주면 된다. 코드는 아래와 같다.

mysql> UPDATE a SET NAME = 'KING' WHERE NAME ='KOKO';
//NAME 이 KOKO인 사람만 변경
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

(주의할 점은 WHERE문을 통해 바꾸고자 하는 데이터를 정확히 지정해야 한다. 그 이유는 WHERE문을 누락할 경우 전체 이름 데이터 모두 이름이 KING으로 바뀌거나, WHERE문 조건 설정 시 NAME과 같은 기본키가 아닌 SEX 나 OLD와 같은 중복된 값이 있을 수 있는 데이터를 설정하는 것은 자신이 변경을 원치 않는 값도 같이 바뀔 수 있기 때문이다.)

 

위와 같이 정상적으로 'KOKO'의 이름이 'KING'으로 바뀐 것을 확인할 수 있다.