MySQL에서는 UPDATE 문의 SET 절에 쉼표(,)로 구분하여 여러 열을 지정함으로써 두 개 이상의 열을 동시에 업데이트할 수 있습니다. 기본 문법은 다음과 같습니다.
UPDATE 테이블이름 SET 열이름1 = '값1', 열이름2 = '값2' WHERE 조건;
예제 테이블 생성하기
문법을 실제로 이해하기 위해 먼저 예제 테이블을 만들어 보겠습니다. 아래 쿼리로 학생 정보 테이블을 생성합니다.
mysql> create table StudentInformations
-> (
-> StudentId int not null auto_increment,
-> StudentFirstName varchar(20),
-> StudentLastName varchar(20),
-> Primary Key(StudentId)
-> );
Query OK, 0 rows affected (0.57 sec)샘플 데이터 삽입하기
INSERT 명령어를 사용해 테이블에 몇 개의 레코드를 추가합니다.
mysql> insert into StudentInformations(StudentFirstName,StudentLastName)
values('John','Smith');
Query OK, 1 row affected (0.16 sec)
mysql> insert into StudentInformations(StudentFirstName,StudentLastName)
values('Carol','Taylor');
Query OK, 1 row affected (0.17 sec)
mysql> insert into StudentInformations(StudentFirstName,StudentLastName)
values('Mike','Jones');
Query OK, 1 row affected (0.13 sec)
mysql> insert into StudentInformations(StudentFirstName,StudentLastName)
values('Sam','Williams');
Query OK, 1 row affected (0.16 sec)
mysql> insert into StudentInformations(StudentFirstName,StudentLastName)
values('Bob','Davis');
Query OK, 1 row affected (0.14 sec)
mysql> insert into StudentInformations(StudentFirstName,StudentLastName)
values('David','Miller');
Query OK, 1 row affected (0.20 sec)전체 레코드 조회하기
SELECT 문으로 테이블에 저장된 모든 레코드를 확인합니다.
mysql> select *from StudentInformations;
실행 결과는 다음과 같습니다.
+-----------+------------------+-----------------+ | StudentId | StudentFirstName | StudentLastName | +-----------+------------------+-----------------+ | 1 | John | Smith | | 2 | Carol | Taylor | | 3 | Mike | Jones | | 4 | Sam | Williams | | 5 | Bob | Davis | | 6 | David | Miller | +-----------+------------------+-----------------+ 6 rows in set (0.00 sec)
두 개의 열 동시에 업데이트하기
이제 두 개의 열을 한 번에 업데이트하는 쿼리를 실행해 보겠습니다. 여기서는 StudentId가 3인 학생의 이름(StudentFirstName)과 성(StudentLastName)을 각각 'Robert'와 'Brown'으로 변경합니다.
mysql> update StudentInformations set StudentFirstName = 'Robert',
StudentLastName = 'Brown' where
-> StudentId = 3;
Query OK, 1 row affected (0.12 sec)
Rows matched: 1 Changed: 1 Warnings: 0업데이트 결과 확인하기
SELECT 문을 다시 실행하여 변경된 값을 확인합니다.
mysql> select *from StudentInformations;
실행 결과는 다음과 같습니다.
+-----------+------------------+-----------------+ | StudentId | StudentFirstName | StudentLastName | +-----------+------------------+-----------------+ | 1 | John | Smith | | 2 | Carol | Taylor | | 3 | Robert | Brown | | 4 | Sam | Williams | | 5 | Bob | Davis | | 6 | David | Miller | +-----------+------------------+-----------------+ 6 rows in set (0.00 sec)
위 출력 결과를 보면 StudentId가 3인 레코드의 StudentFirstName과 StudentLastName 값이 성공적으로 변경된 것을 확인할 수 있습니다.
핵심 정리
MySQL에서 여러 열을 업데이트할 때는 SET 절 뒤에 열이름 = 값 형태를 쉼표로 구분하여 나열하면 됩니다. WHERE 절을 생략하면 테이블의 모든 행이 수정되므로, 반드시 조건을 명시하여 원하는 레코드만 업데이트하도록 주의해야 합니다.