Под сложными запросами будем понимать запросы по нескольким связанным таблицам базы данных одновременно.
При выполнении запросов в многотабличных базах данных таблицы между собой связываются с помощью ключей, которые ставятся в таблицах только в одинаковых для них полях (например, поле { Код } для Таблицы1, Таблицы2, Таблицы3). Отметим, что собственно имена полей в различных таблицах при их связывании могут не совпадать, но обязательно поля должны быть одного типа.
Поля связанной таблицы можно использовать как просто дополнительные поля базовой таблицы во всех ранее рассмотренных типах простых запросов:
Просто, совокупность таблиц можно рассматривать как одну большую таблицу, набирая требуемые поля в бланк запроса из всех связанных таблиц.
Дополнительные поля связанных таблиц можно использовать для дополнительных условий, когда, например, связывая Таблицу1 и Таблицу2 по полю {Код}, в Таблице2 можно в поле {Улица} записать условие отбора: {Татищева} и тогда при выполнении запроса будут выбраны только те студенты, которые проживают на улице Татищева.
Вычисление итоговых значений, когда можно, например, связав Таблицу1 и Таблицу3 по полю {Код} в бланк запроса из Таблицы1 выбрать поля {Фамилия}, {Имя}, {Отчество}, а из Таблицы3 - поле {Оценка} и записав в нем в строке “Групповые операции” выражение {avg}, получить при выполнении запроса среднюю оценку каждого студента.
1. По Таблице1 и Таблице2 сформируйте запрос для вывода списка фамилий, имен, отчеств студентов и их адресов. Для формирования запроса используйте Конструктор.
2. По Таблице1 и Таблице3 сформируйте список студентов, получивших:
- отличные оценки;
- отличные и хорошие оценки.
При отношении “один-ко-многим” в ответе будет много повторяющихся записей, поэтому включите группировку.
3. Усложните предыдущий запрос:
- задайте конкретный семестр;
- конкретный предмет.
4. Добавьте в предыдущий запрос поле Таблицы5 {Лектор}, выполните запрос и убедитесь, что по связи семестров и предметов выбирается преподаватель, поставивший данную оценку студенту.
5. Рассмотрите различные возможности группирования:
SUM, AVG, MIN, MAX, COUNT, STDEV, VAR, FIRST, LAST.
Оставьте сохраненными запросы со средним значением оценки по каждому из студентов, по каждому из ссеместров, по каждому из предмктов и за весь период в целом.
6. Выберите тех студентов, у которых их средняя оценка меньше обшей средней по всей группе.
Решение этой задачи можно получить длинным путем, используя каждый раз простые запросы.
Сначала найдем среднее значение по всей базе оценок. Для этого составим запрос (на рисунке Запрос3) по одной Таблицу3 и обозначим поле результата {sr}.
Затем найдем по двум таблицам (Таблица1 и Таблица3) среднее значение, группируя его по фамилиям (на рисунке Запрос4).
Теперь можно составить запрос (на рисунке Запрос5) по Запосу4 и с Условием отбора по Запросу3, например, на меньше.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.