MySQL UPDATE 문으로 직원 급여 레코드 수정하기
MySQL에서 UPDATE 명령어는 테이블의 기존 레코드를 수정할 때 사용됩니다. UPDATE 문과 함께 SET 절을 사용하면 새로운 값을 지정할 수 있습니다. 이번 글에서는 직원 급여 데이터를 예시로, UPDATE 문을 활용해 여러 레코드를 한 번에 갱신하는 방법을 단계별로 알아보겠습니다.
1단계: 테이블 생성
먼저 직원 정보를 저장할 테이블을 생성합니다.
mysql> create table DemoTable
(
EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
EmployeeName varchar(50),
EmployeeSalary int
);
Query OK, 0 rows affected (0.57 sec)위 쿼리는 직원 ID(자동 증가 기본키), 직원 이름, 직원 급여 세 개의 컬럼을 가진 테이블을 만듭니다.
2단계: 샘플 데이터 삽입
INSERT 명령어를 사용해 테이블에 직원 데이터를 추가합니다.
mysql> insert into DemoTable(EmployeeName,EmployeeSalary) values('Chris',56780);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(EmployeeName,EmployeeSalary) values('Robert',45670);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable(EmployeeName,EmployeeSalary) values('Mike',87654);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(EmployeeName,EmployeeSalary) values('David',34569);
Query OK, 1 row affected (0.11 sec)3단계: 현재 레코드 확인
SELECT 문으로 테이블에 저장된 모든 레코드를 조회합니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+------------+--------------+----------------+ | EmployeeId | EmployeeName | EmployeeSalary | +------------+--------------+----------------+ | 1 | Chris | 56780 | | 2 | Robert | 45670 | | 3 | Mike | 87654 | | 4 | David | 34569 | +------------+--------------+----------------+ 4 rows in set (0.00 sec)
4단계: UPDATE 문으로 급여 일괄 인상
이제 UPDATE 문과 SET 절을 사용해 모든 직원의 급여를 12,346씩 인상해 보겠습니다. 현재 값 자체를 참조하는 연산식을 사용하면 기존 급여에 특정 금액을 더할 수 있습니다.
mysql> update DemoTable
set EmployeeSalary=EmployeeSalary+12346;
Query OK, 4 rows affected (0.14 sec)
Rows matched: 4 Changed: 4 Warnings: 0WHERE 조건절이 없기 때문에 테이블의 모든 행(4개 레코드)이 한 번에 업데이트되었습니다.
5단계: 업데이트 결과 확인
다시 SELECT 문으로 테이블을 조회하여 변경된 값을 확인합니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+------------+--------------+----------------+ | EmployeeId | EmployeeName | EmployeeSalary | +------------+--------------+----------------+ | 1 | Chris | 69126 | | 2 | Robert | 58016 | | 3 | Mike | 100000 | | 4 | David | 46915 | +------------+--------------+----------------+ 4 rows in set (0.00 sec)
정리 및 주의사항
위 예제처럼 UPDATE 문에서 컬럼명 = 컬럼명 + 값 형태의 연산식을 사용하면 기존 값을 기준으로 손쉽게 데이터를 갱신할 수 있습니다. 다만 WHERE 절 없이 UPDATE 문을 실행하면 테이블의 모든 레코드가 변경되므로, 실무에서는 반드시 WHERE 절로 대상 행을 지정하는 것이 안전합니다. 예를 들어 특정 직원만 인상하려면 update DemoTable set EmployeeSalary=EmployeeSalary+12346 where EmployeeId=3;처럼 조건을 추가하면 됩니다.