반응형
오라클에서 여러 번 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 |