MySQL에서 테이블의 특정 셀(특정 행의 특정 컬럼 값)을 수정하려면 UPDATE 문과 WHERE 절을 함께 사용합니다. WHERE 절로 대상 행을 정확히 지정하지 않으면 테이블의 모든 행이 변경될 수 있으므로 주의해야 합니다.
1. 테이블 생성하기
먼저 예제에 사용할 테이블을 생성합니다.
mysql> create table DemoTable2029
-> (
-> Id int,
-> FirstName varchar(20),
-> LastName varchar(20)
-> );
Query OK, 0 rows affected (0.98 sec)
2. 레코드 삽입하기
INSERT 명령을 사용하여 테이블에 몇 개의 레코드를 추가합니다.
mysql> insert into DemoTable2029 values(1,'Chris','Brown');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable2029 values(2,'David','Miller');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable2029 values(3,'John','Smith');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable2029 values(4,'John','Brown');
Query OK, 1 row affected (0.27 sec)
3. 전체 레코드 조회하기
SELECT 문으로 테이블의 모든 레코드를 확인합니다.
mysql> select *from DemoTable2029;
위 쿼리는 다음과 같은 결과를 출력합니다.
+------+-----------+----------+
| Id | FirstName | LastName |
+------+-----------+----------+
| 1 | Chris | Brown |
| 2 | David | Miller |
| 3 | John | Smith |
| 4 | John | Brown |
+------+-----------+----------+
4 rows in set (0.00 sec)
4. 특정 셀 업데이트하기
이제 Id가 4인 행의 FirstName과 LastName 값을 변경하는 UPDATE 쿼리를 실행합니다. WHERE 절에 조건(Id=4)을 지정했기 때문에 해당 행만 수정됩니다.
mysql> update DemoTable2029
-> set FirstName='Adam',LastName='Smith'
-> where Id=4;
Query OK, 1 row affected (0.14 sec)
Rows matched: 1 Changed: 1 Warnings: 0
5. 업데이트 결과 확인하기
테이블의 레코드를 다시 한번 조회하여 변경이 제대로 적용되었는지 확인합니다.
mysql> select *from DemoTable2029;
실행 결과는 다음과 같습니다. Id가 4인 행의 값이 'Adam', 'Smith'로 변경된 것을 확인할 수 있습니다.
+------+-----------+----------+
| Id | FirstName | LastName |
+------+-----------+----------+
| 1 | Chris | Brown |
| 2 | David | Miller |
| 3 | John | Smith |
| 4 | Adam | Smith |
+------+-----------+----------+
4 rows in set (0.00 sec)
이처럼 UPDATE 문에서 SET 절로 변경할 컬럼과 값을 지정하고, WHERE 절로 대상 행을 명확히限定하면 원하는 셀의 내용만 안전하게 수정할 수 있습니다.