219
<выражение> - задает значение, которое будет вставлено в столбец
таблицы. Этот параметр должен иметь тот же тип данных, что и столбец,
а также удовлетворять ограничениям целостности, определенным для
соответствующего столбца.
<результирующая_таблица> - этот параметр подразумевает указа-
ние запроса SELECT, с помощью которого будет формироваться набор
данных, вставляемых в таблицу. Количество столбцов, порядок их пере-
числения и их типы данных должны соответствовать столбцам, указан-
ным в списке <список_столбцов>. Если последний отсутствует, то за-
прос должен возвращать значения для всех столбцов таблицы.
DEFAULT VALUES - при указании этого параметра строка будет
содержать только значения по умолчанию. Если для столбца не установ-
лено значение по умолчанию, но разрешено хранение значений NULL,
то в столбец будет вставлено значение NULL. Если же для столбца не
разрешено хранение значений NULL, нет значения по умолчанию и в
команде INSERT не указано значение для вставки, то будет выдано со-
общение об ошибке и выполнение команды прервется.
Более сложный случай вставки данных предполагает использова-
ние конструкции INSERT INTO...SELECT:
INSERT INTO <имя_таблицы>
SELECT <выражение_запроса>
Аргумент <имя_таблицы> содержит имя таблицы, в которую бу-
дут вставляться выбранные данные. Таблица должна иметь соответст-
вующую структуру и быть предварительно создана.
<Выражение_запроса> определяет тело запроса SELECT, с помо-
щью которого производится выборка данных из одной или нескольких
таблиц. Например, для выборки данных из таблицы «Студенты» обо
всех студентах, поступивших в ВУЗ в 2000 году и сохранения их и таб-
лице «Студент_2000» можно использовать такую последовательность
инструкций:
CREATE TABLE Студент_2000
(ID_Студент_2000 INTEGER NOT NULL,
Фамилия CHAR(30) NOT NULL,
Имя CHAR(15) NOT NULL,
Отчество CHAR(20) NOT NULL,
Адрес CHAR(30),
Телефон CHAR(8),
PRIMARY KEY (ID_Студент_2000))
INSERT INTO Студент_2000
SELECT ID_Студент, Фамилия, Имя, Отчество, Адрес, Телефон
FROM Студенты
WHERE Год_поступления = 2000