Оператор INSERT INTO SELECT в SQL-запиті

Матеріал представлений на сторінці взятий з ресурсу http://www.w3schools.com/sql/


За допомогою SQL-запитів можна копіювати інформацію з однієї таблиці в іншу.
Оператор INSERT INTO SELECT в SQL-запиті копіює результати вибірки з однієї таблиці та вставляє в іншу вже існуючу таблицю. Всі існуючі рядки в цільовій таблиці не змінюються.

Синтаксис використання оператора INSERT INTO SELECT SQL-запиту.
Ми можемо скопіювати всі колонки з однієї таблиці в іншу існуючу таблицю.

INSERT INTO table2
SELECT * FROM table1;

Чи можемо скопіювати лише певні колонки в іншу існуючу таблицю.

INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;

База Даних Demo

Для зразка використаємо добре відому :) Базу Даних Northwind .
Нижче представлений зразок таблиці "Customers" (Споживачі):

CustomerIDCustomerNameCityCountry
1Alfreds FutterkisteBerlinGermany
2Ana TrujilloMexicoMexico
3Antonio MorenoMexicoMexico

Таблиця "Suppliers"(Постачальники):

SupplierIDSupplierNameCityCountry
1Exotic LiquidLondonUK
2New OrleansNew OrleansUSA
3Grandma Kelly'sAnn ArborUSA

Приклад використання оператора INSERT INTO SELECT

    Копіруємо декілька колонок з таблиці з таблиці "Suppliers" в таблицю "Customers".

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

Перевір себе тут

Копіруємо лише споживачів з країни German.

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

Перевір себе тут