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


         

а теперь нам осталась последняя


  • GROOP BY R3.Группа)


  • Ну а теперь нам осталась последняя простейшая операция: надо заменить старый вложенный запрос, определявший отличников, получивших три пятерки на сессии, на новый универсальный запрос:

  • UPDATE R5


  • SET R5.Стипендия = 50%


  • WHERE R5.ФИО IN (SELECT R1.ФИО


  • FROM R1.R2


  • WHERE Rl. ФИО = R2.ФИО AND R1.Оценка = 5


  • GROOP BY R1.ФИО


  • HAVING COUNT(*) = (SELECT COUNT(*)


  • FROM R3


  • WHERE R2.Группа = R3.Группа


  • GROOP BY R3.Группа))


  • Вот какой сложный запрос мы построили. Это ведь практически один оператор, а какую сложную задачу он решает. Действительно, мощность языка SQL иногда удивляет даже профессионалов, кажется невозможно построить один запрос для решения конкретной задачи, но когда начинаешь поэтапно его конструировать - все получается. Самое сложное - это сделать переход от словесной формулировки задачи к представлению ее в терминах нашего SQL, но этот процесс сродни процессу алгоритмизации при решении задач традиционного программирования, а он всегда был самым трудным, творческим и неформализуемым процессом. Недаром на заре развития программирования известный американский специалист по программированию Дональд Е. Кнут озаглавил свой многотомный

    102

    капитальный труд по теории и практике программирования "Искусство программирования для ЭВМ" ("The art of computer programming").

    103

    95 :: 96 :: 97 :: 98 :: 99 :: 100 :: 101 :: 102 :: 103 :: Содержание


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