Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 특정 열(컬럼)의 값만 업데이트하는 방법

MySQL에서 UPDATE 문을 사용하면 여러 열을 한 번에 수정할 수 있지만, 경우에 따라서는 하나의 열(컬럼) 값만 선택적으로 변경해야 할 때가 있습니다. 이 글에서는 WHERE 조건절과 함께 UPDATE 문을 활용하여 원하는 열의 값만 안전하게 수정하는 방법을 예제와 함께 살펴보겠습니다.

1. 테이블 생성하기

먼저 실습에 사용할 테이블을 생성합니다. 학생 ID, 이름, 국가명 세 개의 열을 가진 테이블입니다.

mysql> create table DemoTable1605
-> (
-> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> StudentName varchar(20),
-> StudentCountryName varchar(20)
-> );
Query OK, 0 rows affected (0.48 sec)
  • StudentId: 자동 증가(AUTO_INCREMENT)되는 기본키
  • StudentName: 학생 이름을 저장하는 열
  • StudentCountryName: 학생의 국가명을 저장하는 열

2. 데이터 삽입하기

INSERT 명령을 사용하여 테이블에 샘플 데이터를 입력합니다.

mysql> insert into DemoTable1605(StudentName,StudentCountryName) values('Adam','AUS');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable1605(StudentName,StudentCountryName) values('John','US');
Query OK, 1 row affected (0.08 sec)
mysql> insert into DemoTable1605(StudentName,StudentCountryName) values('Bob','UK');
Query OK, 1 row affected (0.11 sec)

3. 저장된 데이터 확인하기

SELECT 문으로 테이블의 전체 레코드를 조회해 보겠습니다.

mysql> select * from DemoTable1605;

실행 결과는 다음과 같습니다.

+-----------+-------------+--------------------+
| StudentId | StudentName | StudentCountryName |
+-----------+-------------+--------------------+
| 1 | Adam | AUS |
| 2 | John | US |
| 3 | Bob | UK |
+-----------+-------------+--------------------+
3 rows in set (0.00 sec)

4. 단일 열 값만 업데이트하기

이제 핵심 부분입니다. 아래 쿼리는 국가명이 'UK'인 행의 StudentName 열만 'Chris'로 변경합니다.

mysql> update DemoTable1605 set StudentName='Chris' where StudentCountryName='UK';
Query OK, 1 row affected (0.09 sec)
Rows matched: 1 Changed: 1 Warnings: 0

UPDATE 문의 기본 문법 구조는 다음과 같습니다.

UPDATE 테이블명 SET 변경할_열 = '새로운_값' WHERE 조건;

SET 절에는 변경하고자 하는 열만 지정하면 되며, 나머지 열의 값은 그대로 유지됩니다. WHERE 절을 생략하면 테이블의 모든 행이 수정되므로, 반드시 정확한 조건을 함께 작성하는 것이 중요합니다.

5. 업데이트 결과 확인하기

변경된 내용을 확인하기 위해 다시 한번 전체 레코드를 조회합니다.

mysql> select * from DemoTable1605;

실행 결과는 다음과 같습니다.

+-----------+-------------+--------------------+
| StudentId | StudentName | StudentCountryName |
+-----------+-------------+--------------------+
| 1 | Adam | AUS |
| 2 | John | US |
| 3 | Chris | UK |
+-----------+-------------+--------------------+
3 rows in set (0.00 sec)

결과를 보면 StudentId가 3인 행의 StudentName이 'Bob'에서 'Chris'로 변경되었고, 다른 열들의 값은 그대로 유지된 것을 확인할 수 있습니다.

마무리

MySQL에서 특정 열의 값만 업데이트하려면 UPDATE 문의 SET 절에 해당 열만 명시하고, WHERE 절로 대상 행을 정확히 지정하면 됩니다. 실무에서는 업데이트 전 SELECT 문으로 대상 데이터를 먼저 조회하여 의도한 행만 수정되는지 검증한 후 실행하는 것이 안전한 데이터 관리 습관입니다.