Теория баз данных



         

Операторы манипулирования данными - часть 5


Часть WHERE является необязательной, так же как и в операторе DELETE. Она играет здесь ту же роль, что и в операторе DELETE, — позволяет отобрать строки, к которым будет применена операция модификации. Если условие отбора не задается, то операция модификации будет применена ко всем строкам таблицы.

Для решения ранее поставленной задачи нам необходимо выполнить следующую операцию

UPDATE Rl

SET Rl.Оценка = 4

WHERE R1.ФИО = "Степанова К.Е." AND R1.Дисциплина = "Базы данных"

В каких случаях требуется провести изменение в нескольких строках? Это не такая уж редкая задача. Например, если мы расширим нашу учебную базу данных еще одним отношением, которое содержит перечень курсов, на которых учатся наши студенты, то можно с помощью операции обновления промоделировать операцию перевода групп на следующий курс. Пусть новое отношение R4 имеет следующую схему:

R4 = < Группа, Курс>

R4


Группа

Курс

4906

3

4807

4

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

UPDATE R4

SET R4.Kypc = R4.Kypc + 1

И результат будет выглядеть следующим образом:

Группа

Курс

4906

4

4807

5

Операция модификации, так же как и операция удаления, может использовать сложные подзапросы. Расширим нашу базу еще одним отношением, которое будет содержать перечень студентов, получающих стипендию с указанием надбавки, которую они получают за отличную учебу. Исходно там могут находиться все студенты с указанием неопределенного размера стипендии. По мере анализа отношения R1 мы можем постепенно заменять неопределенные значения на конкретные размеры стипендии. Отношение R5 имеет вид:

R5

ФИО

Группа

Стипендия

Петров Ф. И.

4906

<Null>

Сидоров К. А.

4906

<Null>

Миронов А. В.

4906

<Null>

Крылова Т. С.

4906

<Null>

Владимиров В. А.

4906

<Null>

Трофимов П. А.

4807

<Null>

Иванова Е. А.

4807

<Null>

Уткина Н. В.

4807

<Null>

<


Содержание  Назад  Вперед