INSERT ALL
https://kwanghyung.tistory.com/entry/INSERT%EB%AC%B8-%EB%B0%8F-%EC%A0%9C%EC%95%BD%EC%A1%B0%EA%B1%B4
INSERT문 및 제약조건
https://kwanghyung.tistory.com/entry/DDL-DATA-DEFINITION-LANGUAGE-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%A0%95%EC%9D%98-%EC%96%B8%EC%96%B4 DDL (DATA DEFINITION LANGUAGE) : 데이터 정의 언어 DDL은 오라클에서..
kwanghyung.tistory.com
INSERT ALL 계열
두개 이상의 테이블에 각각 INSERT할때 사용
조건 : 그 때 사용되는 서브쿼리가 동일해야 한다.
1)INSERT ALL
INTO 테이블명1 VALUES (컬럼명,컬럼명,..)
INTO 테이블명2 VALUES (컬럼명,컬러명,..)
서브쿼리;
EX) JOB_NAME1이라는 테이블과 DEPT_TITLE1이라는 테이블에 EMP_ID(사원 아이디), EMP_NAME (사원 이름), JOB_NAME(직급명),DEPT_TITLE(부서명) INSERT ALL 사용하여 넣기
단, SUBQUERY문에는 EMPLOYEE테이블,JOB 테이블, DEPARTMENT 테이블 조인, EMPLOYEE 테이블의 JOB_CODE와 JOB테이블이 JOB_CODE과 동일, EMPLOYEE DEPT_CODE와 DEPARTMENT의 DEPT_ID가 동일
INSERT ALL
INTO JOB_NAME1 VALUES (EMP_ID,EMP_NAME,JOB_NAME)-- 8개행
INTO DEPT_TITLE1 VALUES (EMP_ID,EMP_NAME,DEPT_TITLE) --8개행
SELECT EMP_ID,EMP_NAME,JOB_NAME,DEPT_TITLE
FROM EMPLOYEE E, JOB J, DEPARTMENT
WHERE E.JOB_CODE = J.JOB_CODE
AND DEPT_CODE=DEPT_ID
2) INSERT ALL
WHEN 조건 THEN
INTO~
WHEN 조건2 THEN
INTO~
서브쿼리;
-조건에 맞는 값들만 넣겠다.
EX) 2010년도 기준으로 이전에 입사한,사원의 사번(EMP_ID),사원명(EMP_NAME),입사일(HIRE_DATE),급여(SALARY)를 담는 테이블(EMP_OLD)
과 2010년도 기준으로 이후에 입사한,사원의 사번,사원명,입사일,급여를 담는 테이블(EMP_NEW)을 동시에 INSERT ALL 사용하여 삽입하기
입사기준 HIRE_DATE 컬럼사용하기
INSERT ALL
WHEN HIRE_DATE < '2010/01/01' THEN
INTO EMP_OLD VALUES (EMP_ID,EMP_NAME,HIRE_DATE,SALARY)
WHEN HIRE_DATE > '2010/01/01' THEN
INTO EMP_NEW VALUES (EMP_ID,EMP_NAME,HIRE_DATE,SALARY)
SELECT *
FROM EMPLOYEE;