일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 리덕스 공식문서
- 오라클 병렬처리
- 커스텀 로그인
- exiting abnormally
- ACCESS_REFUSED
- 도커빌드
- 리액트
- 트리 회전
- react
- redux
- vue.js
- AWS
- 네임드 뷰
- $emit()
- 리덕스
- Express
- REDIS
- .getClass()
- EBS
- 애그리거트
- 컴포넌트 주도
- forNmae()
- paraller
- quert
- 오라클
- Java Reflextion API
- rabbitmq 에러
- VUE
- 자료구조
- 자바
- 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 |