말랑말랑제리스타일

[Oracle] Insert Select 구문 사용법 본문

데이터베이스/Oracle SQL

[Oracle] Insert Select 구문 사용법

제리제리 2021. 10. 13. 11:16

Insert 구문은 Delete, Update와 함께 SQL의 대표적인 DML문이죠

 

Oracle DB 사용중 테이블을 새로 만들거나

마이그레이션을 하는 경우 등 다양한 상황에서 Select 한 내용을 Insert 하게 되는 상황이 꽤 많은데요

이 상황에서 사용 가능한 구문이 Insert Select 구문이고 사용법은 간단합니다

 

테이블1이 데이터가 Insert 될 테이블,

테이블2가 데이터를 Select 할 테이블이라고 하면

Insert Into 테이블1 Select * from 테이블2

로 사용할 수 있고

만약 테이블 2의 데이터가 테이블 1의 데이터 개수와 일치하지 않을 경우

Insert into 테이블1 Select

Insert Into 테이블1 
Select Col1,Col2...ColN from 테이블2 
Where 조건 Group by 그룹조건 Having 조건

으로 넣을 수 있고 위 SQL과 같이 Group by나 Having 조건도 사용 가능하고 Select구문에 Oracle 함수도 당연히 사용 가능하며 Order by는 사용이 불가합니다

Insert Into 테이블1 (Col1,Col2...ColN)
Select Col1,Col2...ColN from 테이블2 
Where 조건 Group by 그룹조건 Having 조건

이런 방식으로 테이블 1의 특정 컬럼에도 Insert 할 수 있는데

이런 경우 Insert 되는 컬럼과 Select 되는 컬럼의 개수와 데이터타입을 일치시켜줘야겠죠

Comments