30. INSERT INTO SELECT
1. INSERT INTO SELECT
Statement
INSERT INTO SELECT
문은 한 테이블에서 데이터를 복사하고 다른 테이블에 삽입한다.INSERT INTO SELECT
문은 원본 및 대상 테이블에서 일치하는 데이터 타입을 필요로 한다.- 참고로 대상 테이블의 기존 레코드는 영향을 받지 않는다.
2. Syntax
- 한 테이블의 모든 열을 다른 테이블로 복사한다.
- 한 테이블의 일부 열만 다른 테이블로 복사한다.
INSERT INTO table2 (column1, column2, column3, ...)
SELECT column1, column2, column3,, ...
FROM table1
WHERE condition;
Demo Database
- 다음은 Northwind 샘플 데이터베이스의
Customers
테이블이다.
- 다음은 Northwind 샘플 데이터베이스의
Suppliers
테이블이다.
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';