Creative Commons License

Software Dev

프로그래밍기본
객체지향
프로젝트관리
알고리즘
데이타베이스

소프트웨어 개발에 필수적이고 필요한 주제에 대한 강의 및 공유

.

데이타베이스

Database 관련 기술을 다룹니다. 주로 MSSQL 기반이 될 것입니다. 비지니스 응용 개발자에게 DB 는 뗄 수 없는 존재죠...

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

작성자 : 박종명
최초 작성일 : 2008-06-30 (월요일)
최종 수정일 : 2008-06-30 (월요일)
조회 수 : 3358

 mkex.pe.kr 에 '허동석' 님이 작성해 주신 글을 옮겨 옵니다.

---------------------------------------------------------------------------------------------------------------------------------------
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
   와 같이 사용할 수 있습니다.

이름
비밀번호
홈페이지
BZ <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요