본문 바로가기
데이터베이스/SQL

SQL 데이터 입력, 수정, 삭제 한번에 하기 MERGE

by ADELA_J 2024. 1. 16.

<MERGE>

- 테이블의 데이터를 입력, 수정, 삭제를 한 번에 수행하는 방법

 

▼ 사원 테이블에 부서 위치 컬럼 추가하고,

부서 테이블을 이용해 해당 사원의 부서 위치 값을 갱신하기

 & 만약 부서 테이블에는 존재하는데 사원테이블에 없는 부서 번호라면

새롭게 사원tbl에 입력되도록 하기

▶ MERGE문은 데이터 입력과 수정, 삭제를 한 번에 수행할 수 있게 해줌

▷ emp 테이블에 loc 컬럼에 d.loc로 값을 갱신할 수 있게 해주는 MERGE문.

 

▶ MERGE INTO 다음에 MERGE 대상이 되는 타겟 테이블명을 작성 (여기서는 emp)

- USING절 다음에는 사용할 소스 테이블명 작성

   > 여기서는 DEPT. DEPT 테이블의 데이터로 EMP 테이블을 MERGE함.

- 3. 타겟 테이블과 소스 테이블을 조인함. 조인에 성공하면 첫번째 WHEN인 UPDATE 실행,

실패하면 두번째 WHEN문인 INSERT 절을 실행함.

 

- 6,7 만약 조인에 성공했을 때만 실행하고 싶다면, 여기는 굳이 안적어도 됨.

▽ 요런식으로

 

▶ 만약 merge문을 사용하지 않는다면 아래와 같이 할 수 있음

성공했을때 / 실패했을 때 따로 실행되게 하려면 merge문이 더 나을수도 있을 듯.