YOO
article thumbnail

 

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합니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

출처 : https://aspdotnet.tistory.com/172

'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

검색 태그