Ключевые слова и параметры
schema
Имя схемы, содержащей таблицу. Если схема опущена, то Oracle предполагает, что таблица находится в вашей схеме.
table
Имя таблицы, в которую вставляются строки.
column
Столбец таблицы. Во вставляемой строке содержатся значения из столбцов, указанных в списке. Эти значения указываются во фразе VALUES или получаются в результате вычисления подзапроса.
Если в списке опущено имя столбца, то ему будет присвоено ьзначение по умолчанию, заданное при определении таблицы. Для получения дополнительной информации о значениях по умолчанию см. лабораторную работу 1. Если такой столбец имеет ограничение NOT NULL и для него не определено значение по умолчанию, то Oracle выдаст ошибку, указывающую, что нарушено ограничение NOT NULL, и произведет полный откат результатов выполнения предложения INSERT.
Если список столбцов отсутствует, то фраза VALUES или подзапрос должны содержать значения для всех столбцов таблицы.
values_clause
specifies a row of values to be inserted into the table or view. You must specify a value in the values_clause for each column in the column list. If you omit the column list, then the values_clause must provide values for every column in the table.
subquery
Подзапрос, которые возвращает строки, вставляемые в таблицу. Если подзапрос не возвращает строк, Oracle не вставляет ни одной строки в таблицу.
Если подзапрос специфицирован с фразой VALUES, то подзапрос возвращает значения, вставляемые в одну строку.
Если подзапрос специфицирован без фразы VALUES, то подзапрос возвращает значения, вставляемые в боле, чем одну строку.
Подзапрос может ссылаться на любую таблицу, включая и ту, в которую производится вставка строк в предложении INSERT. Список во фразе SELECT этого подзапроса должен иметь такое же количество столбцов, какое указано в списке столбцов предложения INSERT. Если список столбцов опущен, то подзапрос должен иметь значения для всех столбцов таблицы
t_alias
Предоставляет имя-синоним для таблицы, которое может использоваться в любом месте предложения INSERT.
Примеры
Примеры с использованием фразы VALUES
В следующем примере вставляется стока в таблицу FACULTY. Так как вставляются значения всех столбцов, список столбцов опускается:
INSERT INTO FACULTY
VALUES (1, 'informatics', 'NULL', '5', 93517);
В следующем примере вставляются значения в 7 столбцов таблицы TEACHER. Двум столбцам явно присваивается значение NULL. Значения двух столбцов (Tel и Commission) не определены. Поэтом столбцу Tel присваивается значение NULL, а Commission – значение по умолчанию 0. Последний столбец указывает, что данный преподаватель имеет в качестве своего руководителя преподавателя с первичным ключом 2:
INSERT INTO TEACHER (TchPK, DepFK, name, post, hiredate, salary, ChiefFK)
VALUES (15, 7, 'Ivanov', NULL, NULL, TO_DATE('25.07.2001', 'DD.MM.YYYY'), 350.00, 2);
Пример с использование подзапроса
В следующем примере производится копирование значений всех столбцов для преподавателей-профессоров с надбавками, превышающими 25% ставки, в таблицу BONUS:
INSERT INTO bonus
SELECT *
FROM TEACHER
WHERE Commission > 0.25 * salary AND post 'proessor';
Обновление строк в таблице
Синтаксис
Назначение
Изменение существующих значений столбцов в соответствующих строках таблицы.
Предварительные требования
Чтобы иметь возможность обновлять значения в таблице, принадлежащей вашей схеме, вы должны иметь привилегию UPDATE по отношению к этой таблице.
Для обновления строк в таблицах других схем необходима системная привилегия UPDATE ANY TABLE.