레이블이 #SQLMERGE인 게시물을 표시합니다. 모든 게시물 표시
레이블이 #SQLMERGE인 게시물을 표시합니다. 모든 게시물 표시

2021년 11월 13일 토요일

ORACLE SQL MERGE 명령어

 

ORACLE SQL MERGE 명령어


테이블 데이터를 병합하기 위한 명령어 입니다.


실무에서 자주 사용되며 병합되는 테이블에 데이터가 있는 경우에는 UPDATE, 없는 경우에 INSERT등의 로직을 구현할 수 있습니다.


[기본 형식]

MERGE INTO table_name  alias

USING [table_name | view | subquery] alias

ON (조인 조건)

WHEN MATCHED THEN

        UPDATE SET col1 = val1 [,col2 = val2…]

WHEN NOT MATCHED THEN

        INSERT  (column_list)  VALUES (value_list)


- MERGE INTO 구 : 데이터가 update 되거나 insert될 테이블명(병합되는 테이블명)

- USING 구 : 머지되는 대상 테이블의 data와 비교한 후  update 또는 insert할 때 사용할 데이터 원본 

- ON 구 : update나 insert를 하게 될때의 조건, 조건을 만족하는 레코드가 있으면 WHEN MATCHED 이하를 실행하고 없으면 WHEN NOT MATCHED 이하를 실행 합니다.

- WHEN MATCHED : ON 조건이 참인 경우 수행할 내용

- WHEN NOT MATCHED : ON 조건이 거짓인 경우 수행할 내용


실습을 위해 서브쿼리로 emp_20 이라는 이름으로 테이블을 생성 합니다. EMP 테이블에서 20번 부서원들을 SELECT하여 생성 합니다.


CREATE TABLE emp_20

AS 

SELECT empno, ename, sal, deptno FROM emp 

WHERE deptno = 20


<실행결과>

Table EMP_20이(가) 생성되었습니다.


SELECT * FROM emp_20


<실행결과>


EMPNO

ENAME

      SAL

DEPTNO

1

    7566

JONES

    2975

          20

2

    7788

SCOTT

    3000

        20

3

    7876

ADAMS

    1100

        20

4

    7902

FORD

    3000

        20


EMP 테이블의 데이터를 원본으로 EMP_20 테이블에 데이터가 이미 있으면 sal 값을 10% 증가, 없으면 INSERT 하는 MERGE 문을 작성 하세요


MERGE INTO emp_20 e20

USING emp E

ON(e20.empno = E.empno)

WHEN MATCHED THEN

   UPDATE SET e20.sal = E.sal*1.1

WHEN NOT MATCHED THEN

   INSERT (empno, ename, sal)  VALUES (E.empno, E.ename, E.sal)


<실행결과>

7개 행 이(가) 병합되었습니다.


SELECT * FROM emp_20


<실행결과>


EMPNO

ENAME

      SAL

DEPTNO

1

    7566

JONES

    3272.5

      20

2

    7788

SCOTT

    3300

      20

3

    7876

ADAMS

    1210

      20

4

    7902

FORD

    3300

      20

5

    7782

CLARK

    2450

      10

6

    7839

KING

    5000

    (null)

7

    7934

MILLER

    1300

      10


#MERGE, #SQLMERGE, #오라클MERGE, #ORACLE, #오라클 

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...