TOP

SQL INSERT INTO SELECT

INSERT INTO SELECT 설명

SQL 문 INSERT INTO SELECT은 한 테이블의 데이터를 복사하여 다른 테이블에 삽입합니다.

INSERT INTO SELECT 문을 사용하려면 소스 테이블과 대상 테이블의 데이터 유형이 일치해야 합니다.


대상 테이블의 기존 레코드는 그대로 유지되며 복사 프로세스의 영향을 받지 않습니다.

INSERT INTO SELECT 구문

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

INSERT INTO table2
SELECT * 
FROM table1
WHERE condition

한 테이블에서 다른 테이블로 일부 열만 복사합니다.

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

데모 데이터베이스

이 튜토리얼에서는 유명한 예제 데이터베이스 "Northwind"을 사용합니다.

다음은 "Customers"("고객") 테이블의 샘플입니다.

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

그리고 "Suppliers"("공급업체") 테이블의 샘플은 다음과 같습니다.

SupplierIDSupplierNameContactNameAddressCityPostalCodeCountryPhone
1Exotic LiquidCharlotte Cooper49 Gilbert St.LondonaEC1 4SDUK(171) 555-2222
2New Orleans Cajun DelightsShelley BurkeP.O. Box 78934New Orleans70117USA(100) 555-4822
3Grandma Kelly's HomesteadRegina Murphy707 Oxford Rd.Ann Arbor48104USA(313) 555-5735
4Tokyo TradersYoshi Nagase9-8 Sekimai Musashino-shiTokyo100Japan(03) 3555-5011
5Cooperativa de Quesos 'Las Cabras'Antonio del Valle SaavedraCalle del Rosal 4Oviedo33007Spain(98) 598 76 54

INSERT INTO SELECT 예

다음 SQL 쿼리는 "Suppliers"("공급업체")를 "Customers"("고객")에 복사합니다(데이터가 채워지지 않은 열에는 NULL이 포함됨).

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

SQL 쿼리의 또 다른 버전은 "Suppliers" 테이블의 데이터를 "Customers"로 복사합니다(모든 열을 채움).

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

다음 SQL 문은 독일 공급자만 Customers 테이블에 복사합니다.

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