3.2.    Использование подзапросов в INSERT

Применение оператора INSERT с подзапросом позволяетза-гружать сразу несколько строк в одну таблицу, используя инфор­мацию из другой таблицы. В то время как оператор INSERT, использующий VALUES, добавляет только одну строку, INSERT с подзапросом добавляет в таблицу столько строк, сколько под­запрос извлекает из другой таблицы. При этом количество и тип возвращаемых подзапросом столбцов должно соответствовать количеству и типу столбцов таблицы, в которую вставляются данные.

Например, пусть таблица STUDENTI имеет структуру, пол­ностью совпадающую со структурой таблицы STUDENT. Запрос, позволяющий заполнить таблицу STUDENTI записями обо всех студентах из Москвы из таблицы STUDENT, выглядит следую­щим образом:

INSERT INTO STUDENTI

•SELECT *

FROM STUDENT

WHERE CITY = 'Москва';

Для того же, чтобы добавить в таблицу STUDENTI сведения обо всех студентах, которые учатся в Москве, можно использовать в предложении WHERE соответствующий подзапрос. Например,

INSERT   НЛО STUDENTI SELECT *

FROM STUDENT WHERE UNIV_ID IN

(SELECT UNIV_ID FROM UNIVERSITY WHERE CITY = ■ttXKBa');