느림보 개발
4. 오라클 - MERGE문(1) 본문
MERGE문도 실무에 많이 활용되기 때문에 정리를 해보려고 한다.
* MERGE
- 원본 테이블과 조인 결과를 기반으로 대상 테이블에서 INSERT, UPDATE, DELETE 작업을 수행하는 명령어
- 한 문장으로 한 테이블 안에서의 데이터 변경이 가능하다.
- 여러 테이블이 관여되어 있는 데이터 변경을 원한다면 사용하자!
1. 기본 형태
MERGE
INTO 테이블1 T
USING
(테이블2의 SELECT문) S
ON
(T와 S의 조인 조건)
WHEN MATCHED THEN
(데이터 변경 실행문)
2. 예시
[테이블1] 전체 학생 정보가 담긴 테이블
CREATE TABLE STU (
"이름" VARCHAR(20)
,"학과" VARCHAR(20)
,"나이" VARCHAR(20)
,"장학금명" VARCHAR(20)
);
INSERT INTO STU VALUES('이우연','연기과','23',NULL);
INSERT INTO STU VALUES('인섭씨','한국어과','20','미정');
INSERT INTO STU VALUES('권재경','스포츠학과','20',NULL);
SELECT * FROM STU;
[테이블2] 학생들의 장학금 정보가 있는 테이블
CREATE TABLE STU_SH (
"이름" VARCHAR(20)
,"장학금명" VARCHAR(20)
,"장학금액수" NUMBER(20)
);
INSERT INTO STU_SH VALUES('인섭씨','성적장학',9999999);
INSERT INTO STU_SH VALUES('권재경','미남장학',9999999);
SELECT * FROM STU_SH;
MERGE
MERGE
INTO STU S
USING
(SELECT 이름,장학금명
FROM STU_SH
) S2
ON
(S.이름 = S2.이름
)
WHEN MATCHED THEN
UPDATE
SET S.장학금명 = S2.장학금명; -- S의 장학금명에 S1의 장학금명으로 UPDATE
SELECT * FROM STU;
참고자료
'데이터베이스' 카테고리의 다른 글
3. 오라클 - 레벨링(LEVEL) (1) | 2023.05.20 |
---|---|
2. 오라클 - WITH구문(서브쿼리 정의) (0) | 2023.05.14 |
1. 오라클 - 테이블에 ROLE 부여 (0) | 2023.05.14 |
0. 카테고리 소개 (0) | 2023.05.14 |
Comments