MySQL에서 테이블 전체가 아닌 한 개의 셀(특정 행의 특정 컬럼 값)만 수정하려면 UPDATE 명령어를 사용하면 됩니다. 기본 문법은 다음과 같습니다.
UPDATE yourTableName SET yourColumnName=yourNewValue WHERE yourColumnName=yourOldValue;
위 문법을 실제로 이해하기 위해 먼저 예제 테이블을 생성해 보겠습니다.
1. 테이블 생성
테이블을 생성하는 쿼리는 다음과 같습니다.
mysql> create table changeCellsData
-> (
-> Id int,
-> Name varchar(100),
-> Age int
-> );
Query OK, 0 rows affected (0.81 sec)2. 데이터 삽입
INSERT 명령어로 몇 개의 레코드를 추가합니다.
mysql> insert into changeCellsData values(101,'Mike',23); Query OK, 1 row affected (0.12 sec) mysql> insert into changeCellsData values(103,'Bob',25); Query OK, 1 row affected (0.18 sec) mysql> insert into changeCellsData values(105,'Sam',27); Query OK, 1 row affected (0.12 sec) mysql> insert into changeCellsData values(106,'Carol',21); Query OK, 1 row affected (0.24 sec)
3. 현재 데이터 확인
SELECT 문으로 테이블의 모든 레코드를 조회합니다.
mysql> select *from changeCellsData;
출력 결과
+------+-------+------+ | Id | Name | Age | +------+-------+------+ | 101 | Mike | 23 | | 103 | Bob | 25 | | 105 | Sam | 27 | | 106 | Carol | 21 | +------+-------+------+ 4 rows in set (0.00 sec)
4. UPDATE와 SET으로 셀 데이터 변경
이제 UPDATE와 SET 명령어를 사용하여 셀 데이터를 변경합니다. 여기서는 마지막 레코드의 “Id” 컬럼 값을 106에서 107로 수정합니다.
mysql> update changeCellsData set Id=107 where Id=106; Query OK, 1 row affected (0.19 sec) Rows matched: 1 Changed: 1 Warnings: 0
참고: WHERE 절을 생략하면 테이블의 모든 행이 변경되므로, 반드시 조건을 지정해야 원하는 셀만 안전하게 수정할 수 있습니다.
5. 변경 결과 확인
SELECT 명령어로 셀 데이터가 실제로 변경되었는지 확인합니다.
mysql> select *from changeCellsData;
출력 결과
+------+-------+------+ | Id | Name | Age | +------+-------+------+ | 101 | Mike | 23 | | 103 | Bob | 25 | | 105 | Sam | 27 | | 107 | Carol | 21 | +------+-------+------+ 4 rows in set (0.00 sec)
출력 결과를 보면 Id가 106이었던 Carol의 레코드가 107로 성공적으로 변경된 것을 확인할 수 있습니다. 이처럼 UPDATE ... SET ... WHERE 구문을 활용하면 테이블의 특정 셀 데이터만 정확하고 안전하게 수정할 수 있습니다.