MySQL에서 이미 존재하는 테이블의 특정 행(row)과 열(column)에 값을 삽입하거나 수정하려면 UPDATE 문과 WHERE 절을 함께 사용해야 합니다. 이번 글에서는 예제를 통해 단계별로 그 방법을 알아보겠습니다.
1. 테이블 생성하기
먼저 예제에 사용할 테이블을 생성합니다.
mysql> create table DemoTable1569
-> (
-> StudentId varchar(10),
-> StudentName varchar(20)
-> );
Query OK, 0 rows affected (3.05 sec)
위 쿼리는 학생 ID(StudentId)와 학생 이름(StudentName) 두 개의 열을 가진 DemoTable1569 테이블을 만듭니다.
2. 샘플 데이터 삽입하기
INSERT 명령을 사용하여 테이블에 몇 개의 레코드를 추가합니다.
mysql> insert into DemoTable1569 values('John_12','John Smith');
Query OK, 1 row affected (0.38 sec)
mysql> insert into DemoTable1569 values('David_321','Carol Taylor');
Query OK, 1 row affected (0.50 sec)
mysql> insert into DemoTable1569 values('David_989','David Miller');
Query OK, 1 row affected (0.24 sec)3. 현재 데이터 확인하기
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select * from DemoTable1569;
실행 결과는 다음과 같습니다.
+-----------+--------------+
| StudentId | StudentName |
+-----------+--------------+
| John_12 | John Smith |
| David_321 | Carol Taylor |
| David_989 | David Miller |
+-----------+--------------+
3 rows in set (0.00 sec)
현재 'Carol Taylor' 학생의 ID가 David_321로 잘못 입력되어 있는 것을 확인할 수 있습니다.
4. 특정 행과 열의 값 수정하기
특정 행의 특정 열 값만 변경하려면 UPDATE 문에 SET과 WHERE 절을 조합합니다. 아래 쿼리는 이름이 'Carol Taylor'인 행의 StudentId 값을 Carol_321로 변경합니다.
mysql> update DemoTable1569 set StudentId='Carol_321' where StudentName='Carol Taylor';
Query OK, 1 row affected (0.26 sec)
Rows matched: 1 Changed: 1 Warnings: 0
참고:
WHERE 절을 생략하면 테이블의 모든 행이 일괄 변경되므로, 반드시 조건을 명확히 지정하는 것이 중요합니다.5. 변경 결과 확인하기
다시 한번 테이블의 레코드를 조회하여 변경 사항을 확인합니다.
mysql> select * from DemoTable1569;
실행 결과는 다음과 같습니다.
+-----------+--------------+
| StudentId | StudentName |
+-----------+--------------+
| John_12 | John Smith |
| Carol_321 | Carol Taylor |
| David_989 | David Miller |
+-----------+--------------+
3 rows in set (0.00 sec)
'Carol Taylor' 행의 StudentId가 David_321에서 Carol_321로 성공적으로 변경된 것을 확인할 수 있습니다. 이처럼 MySQL에서는 UPDATE ... SET ... WHERE 구문을 사용하여 원하는 행과 열의 값을 정확하게 수정할 수 있습니다.