№ 3.13 РЕАЛИЗАЦИЯ СЛОЖНЫХ ЗАПРОСОВ К БАЗЕ ДАННЫХ
Цель работы: закрепление навыков по созданию и заполнению таблиц; отработка приемов реализации сложных запросов на выборку.
Используемое программное обеспечение: Microsoft Access.
Требуется создать таблицу «ОЦЕНКИ» и ввести в нее данные с результатами вступительных экзаменов.
1. Создать таблицу, соответствующую следующему отношению:
ОЦЕНКИ (РЕГ_НОМ, ОЦЕНКА_1, ОЦЕНКА_2, ОЦЕНКА_3)
2. Связать таблицу ОЦЕНКИ с таблицей АБИТУРИЕНТЫ через поле РЕГ_НОМ.
3. Ввести в таблицу следующие данные:
Пояснение. Оценка “ноль” выставляется за неявку на экзамене.
С помощью конструктора запросов реализовать следующие запросы, использующие данные из нескольких таблиц и сложные условия выбора.
Запрос 1. Получить список всех абитуриентов, живущих в Перми и имеющих медали. В списке указать фамилию и номер школы, факультет, на который они поступают. Отсортировать список в алфавитном порядке фамилий.
Пояснение. Для реализации данного запроса информация должна извлекаться из трех таблиц: АНКЕТЫ, ФАКУЛЬТЕТЫ, АБИТУРИЕНТЫ. Команда на гипотетическом языке запросов имеет вид:
.выбор АНКЕТЫ.ФАМИЛИЯ, АНКЕТЫ.УЧ_ЗАВЕДЕНИЕ, ФАКУЛЬТЕТЫ.ФАКУЛЬТЕТ где АНКЕТЫ.ГОРОД = “Пермь” и АБИТУРИЕНТЫ.MEДАЛЬ=ДА сортировать АНКЕТЫ.ФАМИЛИЯ по возрастанию
В конструкторе запросов эта команда будет выглядеть так:
Обратите внимание на то, что хотя в команде непосредственно используются поля только из трех таблиц: АНКЕТЫ, ФАКУЛЬТЕТЫ и АБИТУРИЕНТЫ, в реализации запроса участвует четвертая таблица СПЕЦИАЛЬНОСТИ. Ее нельзя исключить, поскольку будет нарушена связность схемы: таблица АБИТУРИЕНТЫ связана с таблицей ФАКУЛЬТЕТЫ через таблицу СПЕЦИАЛЬНОСТИ.
Результатом выполнения данного запроса должна быть следующая таблица:
Запрос 2. Получить список всех абитуриентов, поступающих на юридический факультет, имеющих производственный стаж. Указать фамилию, город, специальность и стаж. Упорядочить по фамилиям.
Пояснение. В этом запросе должны использоваться три таблицы: АНКЕТЫ, СПЕЦИАЛЬНОСТИ, АБИТУРИЕНТЫ. На гипотетическом языке запросов команда выглядит так:
.выбор АНКЕТЫ.ФАМИЛИЯ, АНКЕТЫ.ГОРОД, СПЕЦИАЛЬНОСТИ .СПЕЦИАЛЬНОСТЬ, АБИТУРИЕНТЫ. СТАЖ где ФАКУЛЬТЕТЫ.ФАКУЛЬТЕТ= “Юридический” и АБИТУРИЕНТЫ.СТАЖ>0 сортировать АНКЕТЫ.ФАМИЛИЯ по возрастанию
Самостоятельно реализовать запрос через конструктор. В результате должна быть получена следующая таблица: