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