INSERT INTO SELECT 문
테이블의 데이터를 우리가 복사하고자 하는 대상 테이블로 복사하는 기능을 가진 구문
원본과 대상테이블이 모두 있을 경우 사용
INSERT문과의 차이점
INSERT문은 데이터를 한 행씩 밀어넣는 역할
INSERT INTO SELECT문은 다른 테이블의 데이터들을 일괄로 한번에 삽입하는 경우 사용
ex) 원본 테이블과 복사 대상 테이블 스키마가 동일 할 경우
INSERT INTO 복사대상 테이블명 (컬럼명)
SELECT 컬럼명 FROM 원본테이블명 WHERE 조건 ~
ex ) INSERT INTO Ma_Woogie (No_Woogie)
SELECT No_EMP FROM Ma_EMP WHERE 조건 ~
Ma_EMP 테이블의 No_EMP 컬럼 데이터들이 Ma_Woogie 테이블의 No_Woogie 컬럼에 복사가 됨
ex) TABLE A에서 모든 데이터를 가져와 B라는 테이블에 INSERT 하고 싶을 경우
INSERT INTO B SELECT * FROM A
만일 A보다 컬럼수가 적을 경우에는 컬럼명 직접 적어서 사용 가능
INSERT INTO B SELECT COL1,COL2,COL3 FROM A
SELECT INTO 문
테이블은 새로 생성하여 INSERT 하고 싶을때 사용. 원본은 있고 대상 테이블은 새롭게 생성하려 할 경우 사용
SELECT * INTO 테이블생성하여 데이터 넣을 테이블 FROM 원본테이블
ex) TABLE A에서 모든 데이터를 가져와 A_COPY라는 테이블을 생성하여 데이터를 INSERT하고 싶을 경우.
A_COPY라는 테이블은 현재 만들어져있지 않습니다.
SELECT * INTO A_COPY FROM A
ex) A 테이블의 특정 컬럼만 가져오고 싶을 경우
SELECT * INTO A_COPY FROM ( SELECT COL1,COL2,COL3.... FROM A ) AS TEMP_TABLE
A 테이블의 특정 컬럼만 가져와서 A_COPY라는 테이블을 생성하여 데이터를 INSERT합니다.
'Studying > SQL' 카테고리의 다른 글
[MyBatis] #{ } 와 ${ } 개념과 차이점 (0) | 2023.07.17 |
---|---|
LISTAGG 함수 (0) | 2023.07.05 |
Merge (0) | 2023.06.11 |
데이터 타입 (0) | 2023.05.12 |
파티셔닝(Partitioning) (0) | 2023.05.11 |