[sql] MERGE 문을 사용하여 데이터베이스 테이블 레코드를 수정하는 방법

MERGE 문을 사용하여 데이터베이스 테이블 레코드를 수정하는 방법

데이터베이스에서 레코드를 삽입, 업데이트 또는 삭제하는 작업은 중요하며, 이러한 작업을 수행하는 SQL 쿼리에 대한 이해가 필요합니다. MERGE 문은 조인 조건과 함께 조건을 충족하는 경우 UPDATE, 충족하지 않는 경우 INSERT를 수행하는 유용한 기능을 제공합니다. 이 글에서는 MERGE 문을 사용하여 데이터베이스 테이블 레코드를 수정하는 방법에 대해 알아보겠습니다.

MERGE 문 이해하기

MERGE 문은 조건을 충족하는 경우 UPDATE를 실행하고, 충족하지 않는 경우 INSERT를 실행하는 조작문입니다. 이는 데이터의 삽입 및 수정을 하나의 단일 작업으로 처리할 수 있도록 도와줍니다.

MERGE 문의 구문

다음은 MERGE 문의 기본 구문입니다.

MERGE INTO targetTable using sourceTable ON mergeCondition
WHEN MATCHED THEN 
  UPDATE SET col1 = value1, col2 = value2
WHEN NOT MATCHED THEN
  INSERT (col1, col2) VALUES (value1, value2);

여기서

MERGE 문 사용 예제

다음은 ‘employees’라는 테이블에서 employees의 이메일 주소가 동일한 경우 새로운 부서로 이동시키는 MERGE 문의 예제입니다.

MERGE INTO employees_new e_new
USING employees e
ON e_new.email = e.email
WHEN MATCHED THEN
  UPDATE SET e_new.department = 'New Department'
WHEN NOT MATCHED THEN
  INSERT (email, department) VALUES (e.email, 'New Department');

위의 예제에서 MERGE 문은 employees 테이블과 employees_new 테이블을 조인하고, 조건을 충족할 경우 새로운 부서로 이동시킵니다.

MERGE 문은 데이터베이스 테이블 레코드를 수정하는 강력한 SQL 문입니다. 이를 이해하고 활용함으로써 복잡한 데이터 조작 작업을 보다 간편하게 처리할 수 있습니다.

위 내용은 Oracle 데이터베이스를 기반으로 하며, 다른 데이터베이스 시스템에는 문법이 다를 수 있으므로 해당 시스템의 문서를 참조하시기 바랍니다.

참조: Oracle MERGE 문 문서