MySQL강좌50편: 특정테이블의 데이터 업데이트하기 : update문
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,500 조회
- 0 추천
- 목록
본문
MySQL강좌50편: 특정테이블의 데이터 업데이트하기 : update문
웹사이트등에서 사용하는 게시판에서 특정 글을 읽은 후에 글을 수정하고 싶을 때가 있다.이런 경우에 “수정” 또는 “글수정”이라는 버튼을 클릭한 다음 작성된 글을 수정하고 다시 “확인” 또는 “수정하기”라는 버튼을 클릭하면 기존의 글 내용이 수정한 글 내용으로 수정된다. 이 때 사용되는 SQL문이 바로 update문이다. 따라서 이번 절에서는 select라는 SQL문에 대해서 알아보도록 하겠다.
즉 지금까지는 새로운 데이터를 새로 입력하는 insert문과 입력된 데이터를 검색하는 select문에 대해서 알아보았다. 이번에는 이미 입력되어있는 데이터를 업데이트하는 update문에 대해서 알아보도록 하겠다. 즉 이미 존재하는 데이터를 대상으로하여 특정필드의 값을 변경할 때 사용하는 구문이다.
UPDATE 테이블명 SET 필드명=필드값 또는 산술식 {, 필드명 = 필드값 또는 산술식}*[WHERE 검색조건]
update문에서 주의해야하는 것은 where조건절을 주지않으면 해당 테이블의 모든 데이터들이 변경된다는 것이다. 주의(!!강조), 또 주의하기 바란다.
그럼, 먼저 testtable에 어떤 데이터가 존재하는가를 알아보겠다. 앞에서 배웠던 select문으로 확인한 결과이다.
mysql> select * from testtable; +-----+--------------+----------------------+------+ | uid | name | email | age | +-----+--------------+----------------------+------+ | 0 | ParkSungSoo | sspark@linux.co.kr | 20 | | 1 | sontaesoo | shutterbug@orgio.net | 30 | | 2 | JungWooYoung | | 40 | +-----+--------------+----------------------+------+ 3 rows in set (0.00 sec)
mysql> |
위에서 보는바와같이 3개의 데이터가 존재함을 알 수 있다. 일반적인 데이터수정 방법부터 실습을 해보도록 하겠다. 아래의 예는 testtable에 존재하는 데이터들 가운데 name필드의 값이 “JungWooYoung’인 데이터의 email필드값을 “doly@linux.co.kr”로 변경하는 예이다.
mysql> update testtable set email='doly@linux.co.kr' where name='JungWooYoung'’ Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0
mysql> |
이제 그 결과를 확인해보기 위하여 앞에서 사용하였던 select문을 실행한 것이다.
mysql> select * from testtable; +-----+--------------+----------------------+------+ | uid | name | email | age | +-----+--------------+----------------------+------+ | 0 | ParkSungSoo | sspark@linux.co.kr | 20 | | 1 | sontaesoo | shutterbug@orgio.net | 30 | | 2 | JungWooYoung | doly@linux.co.kr | 40 | +-----+--------------+----------------------+------+ 3 rows in set (0.00 sec)
mysql> |
위의 결과를 보는바와같이 JungWooYoung의 email값이 “doly@linux.co.kr”로 변경되어 있음을 알 수 있다.
그리고 다음은 uid필드값이 2인 사람의 age(나이)를 30살로 수정한 예이다. 그리고 select문으로 그 결과를 확인하였다.
mysql> update testtable set age=30 where uid=2; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
mysql> mysql> select * from testtable; +-----+--------------+----------------------+------+ | uid | name | email | age | +-----+--------------+----------------------+------+ | 0 | ParkSungSoo | sspark@linux.co.kr | 20 | | 1 | sontaesoo | shutterbug@orgio.net | 30 | | 2 | JungWooYoung | doly@linux.co.kr | 30 | +-----+--------------+----------------------+------+ 3 rows in set (0.00 sec)
mysql> |
그리고 이번에는 해가 바뀌어서 모든 사람들의 나이가 1증가하므로 이를 update문으로 작업한 예이다. 그 결과를 보면 모든 데이터들의 age값이 1증가되어 결론적으로 모든 사람들의 나이를 1증가시킨 것이다.
mysql> update testtable set age=age+1; Query OK, 3 rows affected (0.00 sec) Rows matched: 3 Changed: 3 Warnings: 0
mysql> mysql> select * from testtable;
+-----+--------------+----------------------+------+ | uid | name | email | age | +-----+--------------+----------------------+------+ | 0 | ParkSungSoo | sspark@linux.co.kr | 21 | | 1 | sontaesoo | shutterbug@orgio.net | 31 | | 2 | JungWooYoung | doly@linux.co.kr | 31 | +-----+--------------+----------------------+------+ 3 rows in set (0.00 sec)
mysql> |
이상으로 update문을
이용하여 데이터의 값을 수정하는 기본적인 예들을 보았다. 이외에도
update문의 종류에는 여러가지가 있지만 서버관리자 업무범위를 수행하려면 설명드린 내용정도만 알아도 충분하리라 생각한다.
관련자료
-
이전
-
다음