개발 지식/[DBMS] Oracle

[Oracle] DML(4) - 서브쿼리를 활용한 다중 INSERT

devGSP 2022. 6. 9. 08:00
반응형
이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다.

Java(TM) 플랫폼 : 1.8.0_321
Oracle IDE : 4.1.5.21.78

 

서브쿼리를 활용한 다중 INSERT

 

아래의 테이블이 없으면 여기를 클릭하여 테이블을 생성하고 돌아오자.

SELECT * FROM TB_EMP;

 

초반 포스트에서 학습용으로 사용한 테이블을 활용해 여러 개의 데이터를 삽입해 보자.

아래의 쿼리문을 실행해 보자.

     SELECT E.EMPNO, E.ENAME, E.JOB, E.MGR, E.HIREDATE, E.SAL, E.COMM, E.DEPTNO
       FROM EMP E, SALGRADE S
      WHERE JOB = 'CLERK'
        AND E.SAL BETWEEN S.LOSAL AND S.HISAL;

dml4_q1

 

이제 이 쿼리문의 결과로 나오는 행들을 그대로 TB_EMP 테이블에 삽입해 보자.

일종의 서브쿼리를 활용한 다중 데이터 삽입이라고 볼 수 있다.

 

INSERT INTO TB_EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
     SELECT E.EMPNO, E.ENAME, E.JOB, E.MGR, E.HIREDATE, E.SAL, E.COMM, E.DEPTNO
       FROM EMP E, SALGRADE S
      WHERE JOB = 'CLERK'
        AND E.SAL BETWEEN S.LOSAL AND S.HISAL;
        
SELECT * FROM TB_EMP; -- 결과 확인

 

[쿼리 실행 전]

dml4_q2

 

[쿼리 실행 후]

dml4_q3

반응형