- •Н.С. Безруких, и.С. Матвеева управление базами данных
- •080502, 080109, 220501 Заочной формы обучения
- •Содержание
- •Введение
- •1 Работа с базой данных
- •1.1 Понятие базы данных
- •1.2 Виды моделей данных
- •1.2.1 Иерархическая модель данных
- •1.2.2 Сетевая модель данных
- •1.2.3 Реляционная модель данных
- •1.3 Проектирование базы данных
- •1.3.1 Этапы проектирования
- •1.3.2 Понятие сущности, атрибута и связи
- •1.3.3 Пример проектирования базы данных
- •1.4 Функциональные возможности субд
- •1.5.4 Вывод информации из базы
- •1.6 Технология работы в субд ms Access
- •2 Лабораторные работы
- •2.1 Лабораторная работа №1. Создание таблиц и ввод данных
- •2.1.1 Указания к выполнению лабораторной работы
- •2.1.1.1 Описание структур таблиц
- •2.1.1.2 Технология создания структуры таблицы конструктором
- •2.1.1.3 Обеспечение контроля ввода данных
- •2.1.1.4 Создание столбца подстановок
- •2.1.1.5 Создание схемы данных
- •2.1.1.6 Понятие связной целостности данных
- •2.1.2 Задание
- •I Создание структуры таблиц базы данных
- •II Установка связей между таблицами
- •III Ввод данных в таблицы
- •IV Проверка поддержания связной целостности данных
- •2.2 Лабораторная работа №2. Создание запросов на выборку данных
- •2.2.1 Указания к выполнению лабораторной работы
- •2.2.1.1 Технология создания запроса на выборку
- •2.2.1.2 Создание запроса с параметром
- •2.2.1.3 Использование выражений в условиях отбора
- •2.2.1.4 Создание вычисляемых полей в запросах
- •2.2.1.5 Групповые операции в запросах
- •2.2.1.6 Построение запроса на основе других запросов
- •2.2.1.7 Перекрестные запросы
- •2.2.2 Задание
- •2.3 Лабораторная работа №3. Создание форм
- •2.3.1 Указания к выполнению лабораторной работы
- •2.3.1.1 Создание однотабличной формы с помощью Автоформы
- •2.3.1.2 Создание многотабличной формы
- •2.3.1.3 Доработка формы в режиме конструктора
- •2.3.1.4 Вычисления в форме
- •2.3.2 Задание
- •2.4 Лабораторная работа №4. Разработка отчетов
- •2.4.1 Указания к выполнению лабораторной работы
- •2.4.1.1 Создание однотабличного отчета с помощью мастера
- •2.4.1.2 Доработка отчета в режиме конструктора
- •2.4.1.3 Добавление в отчет вычисляемых полей Определение вычисляемого поля
- •2.4.1.4 Создание многотабличного отчета
- •2.4.1.5 Редактирование многотабличного отчета в режиме конструктора
- •2.4.2 Задание Создание многотабличного отчета
- •3 Задания для контрольной работы Общие требования к выполнению контрольной работы
- •4 Пример выполнения контрольной работы
- •Доработка формы в режиме конструктора
- •Создаем отчет
- •Редактируем отчет в режиме конструктора
- •Библиографический список
- •Приложение а (обязательное) Перечень ключевых слов
- •Приложение b (обязательное) Образец титульного листа
- •Обработка информации в среде субд
- •Управление базами данных
2.2.1.7 Перекрестные запросы
Перекрестный запрос является специальным запросом итогового типа. С его помощью создается перекрестная таблица. Левый столбец этой таблицы образует заголовки строк из значений одного поля, верхняя строка образуется из значений другого поля, а на пересечении строк и столбцов размещаются итоговые значения, вычисленные по третьему полю. Перекрестные таблицы можно создавать Мастером или в режиме конструктора на основе одной или нескольких таблиц. По сути, перекрестный запрос является запросом с группировкой по полям, определяющим заголовки строк и столбцов, и вычислением статистической функции по одному из полей в полученных группах.
Как создать перекрестный запрос в режиме конструктора? Необходимы следующие действия:
выбрать объект Запрос;
двойной щелчок на значке «Создание запроса в режиме конструктора» в окне БД;
в окне Добавление таблицы включить в схему данных нужную таблицу;
в бланк запроса перетащить нужные поля;
для преобразования обычного запроса на выборку в перекрестный запрос выполнить команду Запрос-Перекрестный запрос;
в бланке запроса появятся две дополнительные строчки Групповая операция и Перекрестная таблица;
для поля, которое будет определять заголовки строк, в строке Перекрестная таблица следует выбрать из списка пункт Заголовки строк, для поля, определяющего заголовки столбцов, – выбрать Заголовки столбцов, для поля с итоговыми данными (значения которого будут стоять на пересечении) – выбрать Значение;
в строке Групповая операция для всех полей, которые являются заголовками строк и столбцов оставить пункт Группировка, а для поля с итоговыми данными – указать статистическую функцию (Sum, Avg и т.д.).
Если есть поле, на которое накладывается некоторое условие, то для такого поля в строке Групповая операция нужно выбирать пункт Условие, в строку Условие отбора вводить выражение.
2.2.2 Задание
Создать в режиме конструктора запросы. Каждый из запросов необходимо сразу сохранять под именем, который указан после номера запроса в скобках. Затем его следует выполнить. Убедившись, что запрос выполняется правильно, переходить к созданию следующего запроса. Иначе вернуться в режим конструктора и скорректировать запрос.
Запрос 1 (Студентки группы 41-1). Вывести список студенток из группы 41-1. Номер группы и пол на экран не выводить. Для этого из таблицы Студент выберите в бланк запроса поля: ФИО, НГ и ПОЛ. В условия отбора бланка запроса для полей НГ и ПОЛ из таблицы Студент впишите 41-1 и ж соответственно.
Запрос 2 (Запрос с параметром). Вывести адреса и фамилии студенток из группы, номер которой запрашивается с клавиатуры при выполнении запроса. Указание. Выберите одну таблицу Студент. В бланк запроса перетащите поля: ФИО, НГ, АДРЕС, ПОЛ. В условия отбора поля ПОЛ введите ж, а для поля НГ – текст в квадратных скобках [Укажите номер группы].
Запрос 3 (Двоечники). Какие студенты имеют двойки хотя бы по одному предмету? Указание. Выбрать таблицы Студент и Успеваемость. В бланк запроса перетащить поля: НГ, ФИО, ПР и ОЦЕНКА. В Условие отбора поля ОЦЕНКА введите число 2.
Запрос 4 (Высокий проходной балл). У каких студентов проходной балл при поступлении выше проходного бала в группе? В отобранных записях должны быть поля с фамилией студента, номером группы, проходным баллом студента и проходным баллом группы. Указание: Потребуется две таблицы Группа и Студент. В условие отбора для поля ПБАЛЛ таблицы Студент введите условие >[Группа]![ПБАЛЛ]. Используйте Построитель выражений.
Запрос 5 (Возраст студентов). Выдать список студентов старше 18 лет, проживающих на улице П. Железняка. В запросе предусмотреть поля с фамилией, адресом, датой рождения и вычисляемым полем Возраст. Указание. Выберите таблицу Студент. В пустую ячейку строки Поле введите Построителем выражений формулу Year(Date())-Year([Студент]![ГОДР]), а в условии отбора для данного поля укажите >=18. В условие отбора для адреса введите *Железняка* (обязательно с символами *).
Запрос 6 (Число студентов в группе). Посчитать фактическое число студентов в каждой группе. Это однотабличный запрос с групповой операцией и статистической функцией. Указание. Добавьте таблицу Студент. Выберите поля: НГ и НС. Щелкните по кнопке Групповые операции на панели инструментов. В поле НГ оставьте текст Группировка, а в поле НС выберите функцию Count.
Запрос 7 (Средний балл студента). Посчитать средний балл каждого студента в сессию. Запрос постройте на базе двух таблиц: Студент и Успеваемость. В бланк запроса перетащите поля: НГ, НС, ФИО, ОЦЕНКА. Используйте групповые операции и функцию Avg.
Запрос 8 (Средний возраст в группе). Вычислите средний возраст студентов в каждой группе. Для этого создайте сначала вспомогательный запрос Возраст всех студентов, который содержит поля: НГ, ФИО и вычисляемое поле ВОЗРАСТ. Строку Условия отбора оставьте пустой. Сохраните запрос. Снова вызовите конструктор для создания нового запроса. Добавьте в поле таблиц вспомогательный запрос. Перетащите из него в бланк запроса поля: НГ и вычисляемое поле ВОЗРАСТ. Добавьте групповую операцию. В строке Групповая операция для поля НГ оставьте Группировка, а для поля ВОЗРАСТ выберите статистическую функцию Avg.
Запрос 10 (Успеваемость в группе). Для конкретной группы выдать таблицу, в которой в заголовках строк указаны фамилии студентов данной группы, а в заголовках столбцов – названия предметов. На пересечении строк и столбцов расположены оценки. Это перекрестный запрос.
Запрос 11 (Оценки по информатике). Сконструировать перекрестный запрос, который выдает следующую таблицу. Заголовками строк являются номера групп, а заголовками столбцов – значения оценок (5, 4, 3, 2). На пересечении строк и столбцов указано количество пятерок, четверок, троек и двоек, полученных по информатике.
Контрольные вопросы
Как в бланке запроса отобразить нужные поля таблицы?
Какая логическая операция применяется к условиям отбора, записанным в одной строке бланка запроса?
Какие операции сравнения и логические операторы можно использовать в условиях отбора?
Как вводится параметр в запрос?
Как указываются в запросе одинаковые поля, принадлежащие разным таблицам?
Допускается ли группировка записей запроса по нескольким полям?
