본문 바로가기

배우기/복습노트[oracle sql]

[복습] SQL | Oracle SQL의 분류(DDL, DML, DCL, TCL, DQL) 중 DML의 MERGE + 복습후기(20231108)

728x90
반응형

4 MERGE: 데이터 병합. 위험한 쿼리이므로 되도록 쓰지 말것.

원본 테이블 기준으로 변경테이블을 수정하므로 old와 new의 관계가 있어야 함.

상당히 좋지 않은 문법을 가짐.

 

기준테이블     수정할 테이블
(  <old>        <new>  ) --순서때문에 실수하는 경우가 있음.
no  price       no  price
1   1000         1  100   → update 필요
2   2000         2  200    → update 필요 
3   3500         3  3500 
4   4000                      →  insert 필요
insert쓰고, update하고 하지말고 한번에 처리하는 방법이 있는가
현업에서는 merge 사용을 금하고 있는 경우가 많음.
시험에는 많이 나옴★

 

★문법

 

 

문법이 너무 어렵게 생겨서 바로 문제로 적용해보겠다.

예제) merge문 test

 

 

 

위 결과로는  3 rows upserted라고 나오는데 upserted 는 update + insert 이다.

그래서 몇 건이 update가 되고 몇 건이 insert인지 몰라서 데이터 검증이 어렵다.

자칫 순서 등이 잘못되면 수정이 잘못되기 때문에 조심해야한다.

 

 

복습후기

필기를 학원에 두고와서 오늘에서야 복습한다...

복습 한번 밀리니 벅차고 수업 따라잡기가 조금 힘이 들었다.

주말이 코앞이라 다행이다. 이번 주말에 싹 정리하고 훑어봐야겠다.

728x90
반응형