Skip to content

30. INSERT INTO SELECT


1. INSERT INTO SELECT Statement

  • INSERT INTO SELECT 문은 한 테이블에서 데이터를 복사하고 다른 테이블에 삽입한다.
  • INSERT INTO SELECT 문은 원본 및 대상 테이블에서 일치하는 데이터 타입을 필요로 한다.
  • 참고로 대상 테이블의 기존 레코드는 영향을 받지 않는다.


2. Syntax

  • 한 테이블의 모든 열을 다른 테이블로 복사한다.


INSERT INTO table2
SELECT * FROM table1
WHERE condition;


  • 한 테이블의 일부 열만 다른 테이블로 복사한다.


INSERT INTO table2 (column1, column2, column3, ...)
SELECT column1, column2, column3,, ...
FROM table1
WHERE condition;


Demo Database

  • 다음은 Northwind 샘플 데이터베이스의 Customers 테이블이다.


001


  • 다음은 Northwind 샘플 데이터베이스의 Suppliers 테이블이다.


002


3. INSERT INTO SELECT Examples

  • 다음은 Suppliers 테이블의 특정 열을 Customers 테이블로 복사한다.
  • 데이터로 채워지지 않은 열에는 NULL이 포함된다.


INSERT INTO Customers (CustomerName, City, Country)
SELECT SupplierName, City, Country FROM Suppliers;


  • 다음은 Suppliers 테이블의 모든 열을 Customers 테이블로 복사한다.


INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
SELECT SupplierName, ContactName, Address, City, PostalCode, Country
FROM Suppliers;


  • 다음은 독일 공급자만 Customers 테이블로 복사한다.


INSERT INTO Customers (Customer, City, Country)
SELECT SupplierName, City, Country FROM Suppliers
WHERE Country = 'Germany';

References