강좌
클라우드/리눅스에 관한 강좌입니다.
데이터베이스 분류

MySQL강좌50편: 특정테이블의 데이터 업데이트하기 : update문

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

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문의 종류에는 여러가지가 있지만 서버관리자 업무범위를 수행하려면 설명드린 내용정도만 알아도 충분하리라 생각한다.

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,015 명
  • 현재 강좌수 :  35,688 개
  • 현재 접속자 :  142 명