Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lw3_Data manipulation.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
166.91 Кб
Скачать

2.2.5.Примеры

Простые примеры

В следующем примере всем преподавателям на должности assistant устанавливается значение NULL столбца Commission:

UPDATE TEACHER

SET Commission = NULL

WHERE post = 'ассистент';

В следующем примере преподаватель Jones переводится на кафедру 20 с увеличением ставки на 100 (предполагаем, что у нас имеется только один преподаватель Jones):

UPDATE TEACHER

SET DepNo =20, salary = salary + 100

WHERE name = 'jones';

Сложный пример

В следующем примере показывается использование следующих синтаксических конструкций предложения UPDATE:

  • Обе формы фразы set_clause в одном предложении.

  • Коррелированный подзапрос.

  • Фраза where_clause, ограничивающая обновляемые строки.

  • Использование алиаса таблицы.

  • Обновление нескольких столбцов (salary, Commission) одновременно.

UPDATE TEACHER a

SET DepNo =

(SELECT DepNo

FROM deptartment

WHERE name = 'DBMS'),

(salary, Commission) =

(SELECT 1.1*AVG(salary), 1.5*AVG(Commission)

FROM TEACHER b

WHERE a.DepNo = b.DepNo)

WHERE DepNo IN

(SELECT DepNo

FROM DEPARTMENT

WHERE FacNo = 1);

Это предложение UPDATE выполняет следующие действия:

  • Обновляет значения только у тех преподавателей, которые работают на факультете, имеющем FacNo = 1

  • Устанавливает этим преподавателям значение DepNo, равным DepNo кафедры 'DBMS' (то есть все преподаватели переводятся на эту кафедру)

  • Устанавливает ставку этим учителям, в 1.1 раз большую средней ставки их предыдущей кафедры.

  • Устанавливает надбавку этим учителям, в 1.5 раз большую средней надбавки их предыдущей кафедры.

2.3.Удаление строк в таблице

2.3.1.Синтаксис

2.3.2.Назначение

Удаляет указанные строки в таблице.

2.3.3.Предварительные требования

Чтобы иметь возможность удалять строки в таблице, принадлежащей вашей схеме, вы должны иметь привилегию DELETE по отношению к этой таблице.

Для удаления строк в таблицах других схем необходима системная привилегия DELETE ANY TABLE.

2.3.4.Ключевые слова и параметры

schema  

Имя схемы, содержащей таблицу. Если схема опущена, то Oracle предполагает, что таблица находится в вашей схеме.  

table

Имя таблицы, из которой удаляются строки.

where_clause  

 

Удаляются строки, удовлетворяющие указанному условию. Условие может ссылаться на таблицу, из которой производится удаление и может содержать подзапрос.  

Если фраза where_clause опущена, Oracle удаляет все строки таблицы.  

t_alias  

Предоставляет имя-синоним для таблицы, которое может использоваться в любом месте предложения DELETE.

2.3.5.Примеры

В следующем примере удаляются все строки таблицы DEPARTMENT.

DELETE FROM DEPARTMENT;

В следующем примере в таблице TEACHER удаляются строки, имеющие отношение к профессорам с надбавкой менее 100:

DELETE FROM TEACHER

WHERE post = 'professor' AND Commission < 100;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]