Практикум по дисциплине «Базы данных» Армавир, 2011 Печатается по решению редакционно-издательского совета



бет14/21
Дата04.10.2022
өлшемі1 Mb.
#41367
түріПрактикум
1   ...   10   11   12   13   14   15   16   17   ...   21
Ключевые слова: связанные (соотнесенные / коррелированные) подзапросы.
Теоретический материал:



  1. Вывести название дисциплин, по которым получена оценка 5.

SELECT NAZVANIE FROM DISCHIPLINA WHERE 5 IN (SELECT OCENKA FROM USPEV WHERE KOD_DISCHIPLINA= DISCHIPLINA.KOD_DISCHIPLINA)

Такой подзапрос отличается от простого подзапроса тем, что вложенный подзапрос не может быть обработан прежде, чем будет обрабатываться внешний подзапрос. Это связано с тем, что вложенный подзапрос зависит от значения DISCHIPLINA.KOD_DISCHIPLINA, а оно изменяется по мере того, как система проверяет различные строки таблицы DISCHIPLINA. Следовательно, с концептуальной точки зрения обработка осуществляется следующим образом:





  1. Система проверяет первую строку таблицы DISCHIPLINA. Предположим, что это строка дисциплины с номером 1. Тогда значение DISCHIPLINA.KOD_DISCHIPLINA будет в данный момент имеет значение, равное 1, и система обрабатывает внутренний запрос:

(SELECT OCENKA FROM USPEV WHERE KOD_DISCHIPLINA= 1)
получая в результате множество (1, 4, 3, 5, 2, 4, 3, 3, 5). Теперь система может завершить обработку для дисциплины с номером 1. Выборка значения NAZVANIE для KOD_DISCHIPLINA= 1 (База данных) будет проведена тогда и только тогда, когда OCENKA=5 будет принадлежать этому множеству, что, очевидно, справедливо.

  1. Далее система будет повторять обработку такого рода для следующей дисциплины и т.д. до тех пор, пока не будут рассмотрены все строки таблицы DISCHIPLINA.

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


Порядок выполнения работы:

  1. Вывести фамилии преподавателей, которые поставили хотя бы одну двойку.

  2. Вывести название предметов, средняя оценка по которым выше 3.

  3. Вывести фамилии студентов, у которых имеются оценки 3 и 4 (одновременно).

  4. Вывести фамилии студентов, которые получили хотя бы одну оценку, выше средней.

  5. Вывести названия групп, в которых обучается 6 студентов.





Достарыңызбен бөлісу:
1   ...   10   11   12   13   14   15   16   17   ...   21




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет