Базы данных. Основы SQL реляционных баз данных. Копейкин М.В - 137 стр.

UptoLike

Т.е. по сравнению с вариантом добавления одной строки в таблицу, фраза
VALUES дополняется соответствующим подзапросом. При этом базовая таблица или
представление к моменту исполнения команды должна существовать или должна быть
создана командой CREATE TABLE. Число и тип столбцов базовой таблицы должны
совпадать с такими же параметрами создаваемой рабочей таблицы предложения
SELECT.
Параметр
предложение_SELECT позволяет заполнить строку таблицы данными,
которые уже хранятся в одной или нескольких таблицах базы данных.
Использование подобной конструкции оказывается очень удобным, когда
приходится резервировать данные или когда администратор базы запрещает Вам
работать с базовыми таблицами и требует, чтобы Вы работали с их копиями.
Пусть пустая базовая таблица с именем КОПИЯ
_СОВМ ранее была создана с
помощью команды CREATE TABLE и содержит те же атрибуты (столбцы) что и наша
базовая таблица СОВМЕСТИТЕЛИ (рис. 2.6).
INSERT INTO Копия_Совм
VALUSE ( SELECT *
FROM Совместители
WHERE Город = "СПБ");
Выбираются все значения, произведенные запросом, то есть все строки из таблицы
СОВМЕСТИТЕЛИ со значениями Город = "СПБ", и помещаются в таблицу с именем
КОПИЯ_СОВМ
.
КОПИЯ_СОВМ - это теперь независимая таблица, которая получила некоторые
значения из таблицы СОВМЕСТИТЕЛИ. Если значения в таблице СОВМЕСТИТЕЛИ
будут изменены, это никак не отразится на таблице КОПИЯ_СОВМ.
В рассмотренном примере таблица СОВМЕСТИТЕЛИ содержит входные данные,
которые будут скопированы в таблицу КОПИЯ_СОВМ. Естественно, если нас
интересуют не все столбцы
таблицы СОВМЕСТИТЕЛИ, то команду INSERT следует
написать, например, так:
INSERT INTO Копия_Совм
(Ид_Cовм, Фамилия, ИНН)