개발정리

[오라클] MERGE 문 본문

CS/SQL

[오라클] MERGE 문

coffee. 2025. 3. 2. 10:36

오라클 MERGE 문에 대하여

오라클에서 MERGE문은 "UPSERT"문을 수행하는데 사용합니다.

여기서 UPSERT란 UPDATE와 INSERT의 합성어 입니다.

조건에 맞는 데이터가 존재하면 UPDATE, 존재하지 않으면 INSERT하는 방식입니다.

MERGE문을 사용한다면 UPDATE문 , INSERT문을 각각 작성하지 않아도 MERGE문 하나로

쿼리를 작성하실 수 있습니다.

 

MERGE문 기본 구문

MERGE INTO target_table t
USING source_table s
ON (t.column1 = s.column1)
WHEN MATCHED THEN
	UPDATE SET t.column2 = s.column 2
WHEN NOT MATCHED THEN
	INSERT (column1,column2)
    VALUES (s,column1,s.column2)

 

주요 요소 설명

1.MERGE INTO target_table t

- target_table 은 데이터를 업데이트 하거나 삽입할 대상 테이블 입니다.

- t는 target_table의 별칭입니다.

 

2.USING source_table s

- source_table 은 비교할 데이터가 포함된 테이블 또는 서브쿼리

- s는 source_table의 별칭입니다.

 

3.ON (condition)

- ON 절에는 source_table 과 target_table 간의 데이터를 비교하는 조건을 정의합니다.

   보통 두 테이블 간의 기 값이나 기준이 되는 컬럼을 비교합니다.

 

4.WHEN MATCHED THEN UPDATE

- ON 조건에 맞는 데이터가 target_table 에 존재하면 UPDATE문이 실행됩니다.

예를들어, 기존 데이터가 조건에 맞으면 해당 데이터를 수정합니다.

 

5.WHEN NOT MATCHED THEN INSERT

- ON 조건에 맞는 데이터가 tartget_table에 존재하지 않으면 새로운 데이터가 INSERT 됩니다.

 

 

장점

- 효율성: 한 번의 쿼리로 삽입 또는 업데이트를 처리할 수 있으므로 성능이 개선

- 간결함: 여러개의 INSERT와 UPDATE문을 작성할 필요없이 조건에 따라 처리할 수 있습니다.

 

'CS > SQL' 카테고리의 다른 글

[오라클] dual테이블에 대해서  (0) 2025.04.16
오라클 PL/SQL 알아보기  (0) 2025.04.13
오라클 paraller 문  (0) 2025.03.05
SELECT FOR UPDATE문  (0) 2025.03.04
OVER와 PARTITION BY 에 대하여  (1) 2024.12.25