Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD / Labs / Russian / Lab3R-Data manipulation.doc
Скачиваний:
31
Добавлен:
20.02.2016
Размер:
165 Кб
Скачать
☆

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 присваиваются значения соответствующих выражений в правой части. Выражения вычисляются в момент обновления строки.

Соседние файлы в папке Russian