본문 바로가기
데이터베이스

SELECT * INTO와 INSERT INTO SELECT..의 차이점

by o테리o 2010. 7. 17.
=======================================================================================
1.SELECT * INTO사용법
    SELECT  INTO 구문은 원본은 있고 대상 테이블은 새롭게 생성하려 할 경우 사용합니다.
    TABLE A에서 모든 데이터를 가져와 A_COPY라는 테이블을 생성하여 데이터를 INSERT하고 싶습니다.
    물론 A_COPY라는 테이블은 현재 만들어져있지 않습니다.

    SELECT * INTO A_COPY FROM A

    위와 같이 하면 A테이블과 같은 컬럼과 데이터를 가지는 A_COPY라는 테이블이 생성됩니다.

    그럼 A테이블의 특정 컬럼만 가져오려면?

    SELECT * INTO A_COPY
    FROM (
        SELECT COL1,COL2,COL3.... FROM A
    ) AS TEMP_TABLE

    위와 같이 하면 A테이블의 특정 컬럼만 가져와서 A_COPY라는 테이블을 생성하여 데이터를 INSERT합니다.

2. INSERT INTO SELECT 사용법
    INSERT INTO 구문은 원본과 대상테이블이 모두 있을 경우 사용합니다.
    TABLE A에서 모든 데이터를 가져와 B라는 테이블에 INSERT 하고 싶습니다.

    INSERT INTO B SELECT * FROM A

    위에서 TABLE A와 TABLE B는 스키마가 동일해야 합니다.

   
    만일 A보다 컬럼수가 적을 경우에는

    INSERT INTO B SELECT COL1,COL2,COL3 FROM A
   
    와 같이 사용할 수 있습니다.

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

Cassandra db 로컬설치  (0) 2011.05.28
MSSQL 2005 원격접속 허용  (0) 2010.12.08
Oracle Having 절  (0) 2010.07.17