Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Модификация и удаление.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
101.17 Кб
Скачать

7.4.3. Операции модификации строк

Для выполнения операции модификации строк предназначен оператор UPDATE, синтаксис которого в упрощенном виде можно представить следующим образом:

UPDATE [имя_схемы.]имя_таблицы [псевдоним]

SET имя_колонки1=выражение1|подзаgрос1 [, имя_колонки2=выражение2|подзаgрос2]

[, ...]

[WHERE условие]

Фразы предложения UPDATE должны быть записаны в указанном порядке. Модификации подвергаются строки таблицы, заданной параметром имя_таблицы. Необязательный параметр имя_схемы используется для уточнения имени схемы, в которой находится соответствующая таблица Oracle. По умолчанию используется схема пользователя, выполняющего операцию. Необязательный параметр псевдоним предназначен для упрощения обращения к таблице и представляет собой синоним модифицируемой таблицы, время действия которого ограничено временем выполнения запроса модификации строк.

Параметры выражение1, выражение2, … представляет собой вычисляемые выражения, обычно базирующееся на данных колонок из таблиц. Вычисленные значения этих выражений будут присвоены колонкам модифицируемой таблицы, которые заданы параметрами имя_колонки1, имя_колонки2, ….

Параметры подзапрос1, подзапрос2, … задают подзапросы, которые должны возвращать одну строку с одной колонкой, значение которой будет присвоено колонке модифицируемой таблицы.

Необязательная конструкция WHERE задает условие отбора строк таблицы, которые будут подвергнуты модификации. Принцип построения этого условия аналогичен принципу построения условия отбора строк в операторе SELECT. Если конструкция WHERE отсутствует, то модификации будут подвергнуты все строки таблицы.

Рассмотрим применение оператора UPDATE на примерах.

Пример 20. Увеличить в 10 раз бюджеты всех проектов.

Поскольку модификации должны подвергнуться все строки таблицы project, в запросе для выполнения модификации будет отсутствовать конструкция WHERE, а запрос будет иметь вид:

UPDATE project SET budget = budget * 10

В этом запросе в качестве выражения, значение которого будет присвоено колонке budget, используется произведение значения самой этой колонки на число 10. Для этого использован оператор умножения “*”.

Пример 21. Увеличить в 10 раз бюджеты проектов, которые выполняются отделами 1 и 2.

В данном запросе диапазон модифицируемых строк должен быть ограничен с помощью условия, указанного после ключевого слова WHERE. Запрос модификации строк будет иметь следующий вид:

UPDATE project SET budget = budget * 10 WHERE dept_no in (1,2)

7.4.4. Операции удаления строк

Для выполнения операции удаления строк предназначен оператор DELETE, синтаксис которого в упрощенном виде можно представить следующим образом:

DELETE [FROM] [имя_схемы.]имя_таблицы [псевдоним]

[WHERE условие]

Параметры, указанные в синтаксической конструкции, аналогичны параметрам оператора UPDATE.

Ключевое слово FROM является необязательным, однако принято использовать его для придания запросу лучшей читаемости.

Если ключевое слово WHERE отсутствует, то из таблицы удаляются все строки. Если же ключевое слово WHERE используется, удаляются строки, для которых выполняется условие.

После удаления строк происходит высвобождение внешней памяти, которую занимали эти строки. Высвобождается также внешняя память, используемая индексами, в которых участвовали удаленные строки.

Пример 22. Удалить информацию о проектах, выполняемых отделами 3 и 4.

Запрос для выполнения этого действия будет иметь вид:

DELETE FROM project WHERE dept_no in (3,4)