Sql select from insert: SQL INSERT INTO SELECT Statement
Содержание
SQL Оператор INSERT INTO SELECT
« Предыдущая
Следующая глава »
С помощью SQL вы можете копировать информацию из одной таблицы в другую.
Оператор INSERT INTO SELECT копирует данные из одной таблицы и
вставляет его в существующую таблицу.
Оператор SQL INSERT INTO SELECT
Оператор INSERT INTO SELECT выбирает данные из одной таблицы и вставляет их
в существующую таблицу. Любые существующие строки в целевой таблице не затрагиваются.
SQL INSERT INTO SELECT Syntax
Мы можем скопировать все столбцы из одной таблицы в другую, существующая таблица:
ВСТАВИТЬ В стол2
ВЫБЕРИТЕ * ИЗ таблица1;
Или мы можем скопировать только нужные столбцы в другую существующую таблицу:
ВСТАВИТЬ В table2
(имя_столбца)
ВЫБЕРИТЕ имя_столбца(ов)
С таблица1;
Демонстрационная база данных
В этом руководстве мы будем использовать известную учебную базу данных Northwind.
Ниже представлена выборка из таблицы «Клиенты»:
CustomerID | ИмяКлиента | Контактное имя | Адрес | Город | Почтовый индекс | Страна |
---|---|---|---|---|---|---|
1 | Альфред Футтеркисте | Мария Андерс | ул. Обере 57 | Берлин | 12209 | Германия |
2 | Ана Трухильо Emparedados y helados | Ана Трухильо | Авда. Конститусьон 2222 | Мексика Д.Ф. | 05021 | Мексика |
3 | Антонио Морено Такерия | Антонио Морено | Матадерос 2312 | Мексика Д.Ф. | 05023 | Мексика |
И выбор из таблицы «Поставщики»:
идентификатор поставщика | Название Поставщика | Контактное имя | Адрес | Город | Почтовый индекс | Страна | Телефон |
---|---|---|---|---|---|---|---|
1 | Экзотическая жидкость | Шарлотта Купер | ул.![]() | Лондона | ЭК1 4СД | Великобритания | (171) 555-2222 |
2 | Новый Орлеан Cajun Delights | Шелли Берк | Почтовый индекс Коробка 78934 | Новый Орлеан | 70117 | США | (100) 555-4822 |
3 | Усадьба бабушки Келли | Регина Мерфи | 707 Оксфорд Роуд. | Анн-Арбор | 48104 | США | (313) 555-5735 |
SQL INSERT INTO SELECT Примеры
Скопируйте только несколько столбцов из «Поставщики» в «Клиенты»:
Пример
INSERT INTO Customers (CustomerName, Country)
ВЫБЕРИТЕ имя поставщика, страну из поставщиков;
Попробуйте сами »
Скопируйте в «Клиенты» только немецких поставщиков:
Пример
INSERT INTO Customers (CustomerName, Country)
ВЫБЕРИТЕ имя поставщика, страну из поставщиков
ГДЕ Country=’Германия’;
Попробуйте сами »
« Предыдущая
Следующая глава »
SQL INSERT INTO SELECT — SqlSkull
Оператор SQL INSERT INTO SELECT выбирает данные из одной таблицы и вставляет их в другую таблицу.
По сути, он копирует данные из таблицы, которую вы можете назвать исходной таблицей, в другую таблицу, которая является целевой таблицей.
Типы данных столбцов в исходной и целевой таблицах должны совпадать.
Не требуется, чтобы целевая таблица имела такое же количество столбцов, как определено в исходной таблице.
СИНТАКСИС
INSERT INTO Target_Table
SELECT Col1, Col2,..
FROM Source_Table ;
Давайте рассмотрим пример оператора INSERT INTO SELECT в SQL Server.
Чтобы продемонстрировать это, сначала мы создадим исходную таблицу с именем EMP_SOURCE и вставим несколько записей в исходную таблицу.
Затем создаст целевую таблицу с именем EMP_TARGET.
CREATE TABLE EMP_SOURCE (
EMPID INT IDENTITY(1,1),
EMPNAME VARCHAR(50),
EMPCODE VARCHAR(10)
)ВСТАВИТЬ В EMP_SOURCE (EMPNAME,EMPCODE)
ЗНАЧЕНИЯ ('RAJ SINGH','XRT78') ,
('SUNIL RAWAT','VFT79'),
('MANISH KR','YUI98'),
( 'Ajay Aggarwal', 'ERT65')
Создание таблицы EMP_TARGEКак видите, в таблице EMP_SOURCE есть несколько записей, которые мы вставили, в то время как таблица EMP_TARGET пуста.
![]()
SELECT * FROM EMP_SOURCE
SELECT * FROM EMP_TARGET
Теперь мы скопируем данные таблицы EMP_SOURCE в таблицу EMP_TARGET.
Следующая инструкция SQL копирует данные из исходной таблицы EMP_SOURCE в целевую таблицу EMP_TARGET.
ВСТАВИТЬ В EMP_TARGET(EMPID, EMPNAME, EMPCODE )
ВЫБРАТЬ EMPID, EMPNAME, EMPCODE
ИЗ EMP_SOURCE ;
Теперь вы можете проверить целевую таблицу, и вы увидите, что все записи из исходной таблицы копируются в целевую таблицу.
SELECT * FROM EMP_SOURCE
SELECT * FROM EMP_TARGET
Копировать только определенные значения столбцов
целевая таблица.
Допустим, вы хотите скопировать значение для столбца EmpName только для EMPID = 1, тогда в этом случае вам придется изменить приведенный выше оператор, выбрав только столбец EMPName в операторе выбора, также необходимо добавить условие where, как указано ниже.