728x90
MERGE
문은 주로 업데이트와 인서트를 하나의 SQL 문으로 처리할 수 있게 도와주는 유용한 문법입니다.
MERGE
문은 데이터 갱신과 삽입을 동시에 처리할 수 있어 유용합니다.
특히 대량의 데이터 업데이트나 동기화 작업에 적합합니다.
1. MERGE 문 사용법
MERGE
문은 주로 두 테이블을 비교하여 조건에 맞는 행에 대해 UPDATE를 하고,
조건에 맞는 행이 없으면 INSERT를 하는 방식으로 사용됩니다.
기본 문법
MERGE INTO T1 USING T2
ON (T1.col = T2.col)
WHEN MATCHED THEN
UPDATE SET T1.col1 = T2.col1, T1.col2 = T2.col2
WHEN NOT MATCHED THEN
INSERT (col1, col2)
VALUES (T2.col1, T2.col2);
설명:
T1
: 업데이트 또는 삽입을 할 대상 테이블T2
: 비교할 기준이 되는 소스 테이블ON (condition)
: 대상 테이블과 소스 테이블의 어떤 조건을 기준으로 비교할지 지정WHEN MATCHED
: 조건에 맞는 행이 있을 경우, 해당 행을 업데이트WHEN NOT MATCHED
: 조건에 맞는 행이 없을 경우, 새로운 데이터를 삽입
예시
예를 들어, employees
테이블에 있는 직원 정보를 new_employees
테이블의 데이터를 기반으로 갱신하려고 할 때, MERGE
문을 사용할 수 있습니다.
MERGE INTO employees e
USING new_employees ne
ON (e.employee_id = ne.employee_id)
WHEN MATCHED THEN
UPDATE SET e.name = ne.name, e.salary = ne.salary
WHEN NOT MATCHED THEN
INSERT (employee_id, name, salary)
VALUES (ne.employee_id, ne.name, ne.salary);
employees
테이블을 기준으로new_employees
테이블의 데이터를 업데이트합니다.- 만약
new_employees
테이블에 있는employee_id
가employees
테이블에 없다면, 새로운 직원을 삽입합니다.
728x90
'프로그래밍(Programming) > SQL' 카테고리의 다른 글
[SQL][ORACLE] ORA-00969: ON 키워드가 없습니다. (0) | 2025.01.18 |
---|