2.1.5.Примеры
Примеры с использованием фразы 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';
2.2.Обновление строк в таблице
2.2.1.Синтаксис
2.2.2.Назначение
Изменение существующих значений столбцов в соответствующих строках таблицы.
2.2.3.Предварительные требования
Чтобы иметь возможность обновлять значения в таблице, принадлежащей вашей схеме, вы должны иметь привилегию UPDATE по отношению к этой таблице.
Для обновления строк в таблицах других схем необходима системная привилегия UPDATE ANY TABLE.
2.2.4.Ключевые слова и параметры
schema |
Имя схемы, содержащей таблицу. Если схема опущена, то Oracle предполагает, что таблица находится в вашей схеме. |
|
table |
Имя таблицы, в которой производятся обновления значений. |
|
set_clause
|
column |
Имя столбца таблицы, значение которого должно быть обновлено. Если столбец отсутствует во фразе the set_clause, значение столбца не изменяется. |
subquery |
Подзапрос, который возвращает точно одну строку для каждой обновляемой строки. Если вы определили только один столбец во фразе set_clause, подзапрос должен возвратить только одно значение. Если вы определили множество столбцов во фразе set_clause, подзапрос должен возвратить столько значений, сколько указано столбцов. Если подзапрос не возвратил ни одной строки, то указанным столбцам присваивается значение NULL. |
|
expr |
Новое значение, присваиваемое соответствующему столбцу. |
|
where_clause |
Ограничивает строки, которые подвергаются обновлению. Строка обновляется, если указанное условие condition принимает значение TRUE. Если эта фраза опущена, то Oracle обновляет все строки таблицы. Синтаксис условий приведен в лабораторной работе 2 . Для любой строки, которая удовлетворяет условию фразы where_clause, столбцам в левой части оператора присваивания (=) фразы set_clause присваиваются значения соответствующих выражений в правой части. Выражения вычисляются в момент обновления строки. |
|
