Базы данных - модели, разработка, реализация



         

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


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

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

  • UPDATE Rl
  • SET R1.Оценка = 4
  • WHERE R1.ФИО = "Степанова К.Е." AND R1.Дисциплина = "Базы данных"
  • В каких случаях требуется провести изменение в нескольких строках? Это не такая уж редкая задача. Например, если мы расширим нашу учебную базу данных еще одним отношением, которое содержит перечень курсов, на которых учатся наши студенты, то можно с помощью операции обновления промоделировать операцию перевода групп на следующий курс. Пусть новое отношение R4 имеет следующую схему:

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

    98

    R4
    Группа Курс
    4906 3
    4807 4

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

  • UPDATE R4
  • SET R4.Kypc = R4.Kypc + 1
  • И результат будет выглядеть следующим образом:

    Группа Курс
    4906 4
    4807 5

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

    R5
    ФИО Группа Стипендия
    Петров Ф. И. 4906
    Сидоров К. А. 4906
    Миронов А. В. 4906
    Крылова Т. С. 4906
    Владимиров В. А. 4906
    Трофимов П. А. 4807
    Иванова Е. А. 4807
    Уткина Н. В. 4807

    Будем считать наличие трех пятерок по сессии признаком повышенной стипендии, + 50% к основной, наличие двух пятерок из сданных экзаменов и отсутствие двоек и троек на сданных экзаменах - признаком повышения стипендии на 25%, наличие хотя бы одной двойки среди сданных экзаменов - признаком снятия или отсутствия стипендии вообще, то есть -100% надбавки.


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