Обновление данных

Инструкция UPDATE создает запрос на обновление, который изменяет значения столбцов указанной таблицы на основе заданного условия отбора:

UPDATE <имя таблицы>

SET <имя столбца1>=<выражение1>,

[<имя столбца2>=<выражение2>,...<имя столбцаМ>=<выражение1М>]

[WHERE <условие>];

Все строки, удовлетворяющие условию отбора во фразе WHERE, или все строки, если WHERE опущено, обновляются в соответствии с присваиваниями <имя столбца> = <выражение> во фразе SET.

Условие отбора во фразе WHERE может быть задано не только в виде логического выражения, порождающего истинностное значение, но и так называемым подзапросом.

Пример 14. Увеличить зарплату инженерам на 10 %:

UPDATE Сотрудник SET зарплата = 1.1 "зарплата

WHERE должность='инженер';

Пример 15. Заменить в таблице «Студент» фамилию студента с данным номером на новую фамилию. Компоненты команды UPDATE могут быть заданы как параметры динамически в процессе выполнения запроса. Например, «рег_номер» = 10101, «фамилия» = Сергеева Н.Н.:

UPDATE Студент SET фамилия = [Введите новую фамилию]

WHERE рег_номер = [Введите номер студента];

Пример 16. Попробуйте изменить в таблице «Экзамен» номер студента (например, 10101') на 11111' и объясните причину неудачи:

UPDATE Экзамен SET рег_номер =11111' WHERE рег_номер = 10101';

Невозможно обновить в одном запросе более одной таблицы.

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

Результаты выполнения запросов на обновление контролируйте визуально.

Задание. Инженеров кафедры «Информационные системы» (шифр ='ис') перевести в подчинение сотрудника с табельным номером 201 (столбец «шеф»). Для конъюнкции двух условий использовать оператор AND.

Задание. Увеличить объем преподавания информатики на 20 часов.

Задание. Преподавателю с таб_номером = 102 присвоить звание профессора.

Задание. Перевести студента с заданным номером («рег- номер») на специальность с заданным номером («номер»). Компоненты команды UPDATE задать параметрически.

Удаление данных

Инструкция DELETE создает запрос на удаление строк, которые удовлетворяют условию отбора во фразе WHERE:

DELETE FROM <имя таблицы> [WHERE <условие>];

Команда DELETE удаляет из таблицы строки целиком, а не отдельные столбцы, поэтому список столбцов не указывается.

Если фраза WHERE опущена, DELETE удалит все строки таблицы. Однако сама таблица удалена не будет, в этом отличие команды DELETE от команды DROP. Условие отбора во фразе WHERE может быть задано не только в виде логического выражения, порождающего истинностное значение, но и так называемого подзапроса.

Пример 17. Удалить из таблицы «Специальность» строку о специальности с «номером» 111111:

DELETE FROM Специальность

WHERE номер=11.11.1Г;

Результаты выполнения запросов на удаление контролируйте визуально.

Задание. Удалить из таблицы «Специальность» строку о специальности («номер») '09.03.03'. Объяснить причину неудачи.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ   След >