일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- Express
- react
- forNmae()
- 도커빌드
- Java Reflextion API
- .getClass()
- 애그리거트
- 네임드 뷰
- 리덕스 공식문서
- 리덕스
- 오라클 병렬처리
- vue.js
- quert
- VUE
- 자바
- exiting abnormally
- 오라클
- redux
- $emit()
- AWS
- EBS
- ACCESS_REFUSED
- 리액트
- paraller
- 커스텀 로그인
- REDIS
- rabbitmq 에러
- 자료구조
- 컴포넌트 주도
- 트리 회전
- Today
- Total
개발정리
[오라클] MERGE 문 본문
오라클 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 |