본문 바로가기

개발/데이터베이스

[ORACLE] INSERT ALL 구문

반응형

오라클에서 여러 번 INSERT를 할 때 INSERT ALL 구문을 이용하면 한 번의 쿼리로 하나의 테이블에 여러 개의 데이터를 삽입하거나 여러 개의 테이블에 한 번에 데이터를 삽입할 수 있다.

하나의 테이블에 여러 개의 데이터 삽입하기


아래와 같은 컬럼을 가진 MEMBER_LIST라는 테이블이 있다고 가정하자.

SITE_CODE MEMBER_NAME MEMBER_ID MEMBER_PW


일반적으로 하나의 데이터를 INSERT 할 때는 아래와 같은 방법으로 한다.

INSERT INTO MEMBER_LIST VALUES(100, '김자바', 'javalove', '1234');


하지만 한번에 여러 개의 데이터를 넣어야 하는 경우 일일히 INSERT 구문을 실행하기보다는 하나의 INSERT ALL 구문으로 처리할 수 있다.

INSERT ALL INTO MEMBER_LIST VALUES(100, '김자바', 'javalove', '1234') INTO MEMBER_LIST VALUES(100, '박파이썬', 'study11', '0000') INTO MEMBER_LIST VALUES(200, '이디비', 'studydb', '9876') SELECT * FROM DUAL;


여러 개의 테이블에 데이터 삽입하기

아래의 같은 컬럼을 테이블들이 있다고 가정하자.

* MEMBER_LIST

SITE_CODE MEMBER_NAME MEMBER_ID MEMBER_PW


* MEMBER_NAME_LIST

SITE_CODE MEMBER_NAME


* MEMBER_ID_LIST

SITE_CODE MEMBER_ID


MEMBER_NAME_LIST와 MEMBER_ID_LIST에 각각 데이터를 삽입할 때 한번에 처리할 수 있는 구문은 다음과 같다.

INSERT ALL INTO MEMBER_NAME_LIST VALUES(100, '김자바') INTO MEMBER_ID_LIST VALUES(100, 'javalove') SELECT * FROM DUAL;


이번에는 MEMBER_LIST에 있는 데이터를 각각 MEMBER_NAME_LIST, MEMBER_ID_LIST에 삽입한다고 가정하자.
아래와 같은 쿼리를 이용하면 한 번에 처리할 수 있다.

INSERT ALL INTO MEMBER_NAME_LIST VALUES(SITE_CODE, MEMBER_NAME) INTO MEMBER_ID_LIST VALUES(SITE_CODE, MEMBER_ID) SELECT SITE_CODE, MEMBER_NAME, MEMBER_ID FROM MEMBER_LIST;



반응형

'개발 > 데이터베이스' 카테고리의 다른 글

[ORACLE] LAG 함수, LEAD 함수  (0) 2021.11.01
[ORACLE] LENGTH 함수, LENGTHB 함수  (0) 2021.10.31
[ORACLE] DB LINK 확인 쿼리  (0) 2021.10.19
[ORACLE] 계층 쿼리 (START WITH CONNECT BY)  (0) 2021.10.18
[ORACLE] MERGE  (0) 2021.10.17