여러분이 사용하고 계신 브라우저는 HTML5를 지원하지 않기 때문에 몇몇 요소가 제대로 보이도록 JScript를 사용하고 있습니다. 하지만 여러분의 브라우저 설정에서 스크립트 기능이 꺼져있으므로, 현재 페이지를 제대로 확인하시려면 스크립트 기능을 켜주셔야 합니다. SQL - INSERT INTO SELECT
SQL – INSERT INTO SELECT
2년전 작성
1년전 수정

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;

데이터베이스 예시

고객 테이블
CustomerID CustomerName ContactName Address City PostalCode Country
1

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
공급업체 테이블
SupplierID SupplierName ContactName Address City Postal Code Country
1 Exotic Liquid Charlotte Cooper 49 Gilbert St. Londona EC1 4SD UK
2 New Orleans Cajun Delights Shelley Burke P.O. Box 78934 New Orleans 70117 USA
3 Grandma Kelly’s Homestead Regina Murphy 707 Oxford Rd. Ann Arbor 48104 USA

예시

“공급자”를 “고객”에 복사

데이터로 채워지지 않은 열에는 NULL이 포함된다.

INSERT INTO Customers (CustomerName, City, Country)
SELECT SupplierName, City, Country FROM Suppliers;
기본 예시
You have made changes to the database. Rows affected: 29
“공급자”를 “고객”으로 복사

모든 열을 채운다.

INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
SELECT SupplierName, ContactName, Address, City, PostalCode, Country FROM Suppliers;
기본 예시
You have made changes to the database. Rows affected: 29
독일 공급업체만 “고객”에 복사
INSERT INTO Customers (CustomerName, City, Country)
SELECT SupplierName, City, Country FROM Suppliers
WHERE Country='Germany';

기본 예시
You have made changes to the database. Rows affected: 3

참고

Mingg`s Diary
밍구
밍구
공부 목적 블로그