Лабораторная работа №3
Создание многотабличных запросов в СУБД Microsoft Access
Цель: научиться создавать многотабличные запросы.
Содержание отчета:
Распечатка SQL команды и результатов запроса для каждого запроса из задания.
Задание
1. Запустить СУБД Microsoft Access.
2. Открыть базу данных, созданную в результате выполнения лабораторной работы №1.
3. Выполнить запрос №1 и 2 с помощью конструктора запросов.
4. Выполнить запросы 3-7 с помощью команды SELECT режиме SQL.
5. Оформить отчет.
6.
Краткие теоретические сведения
Запросы к базе данных с группировкой
Запросы с группировкой позволяют сгруппировать данные по значению какого-либо поля и вычислить значение группового поля для всей группы. Групповые функции могут быть следующими: Sum(), Avg(), Min(), Max(), Count(), Stdev(), Var().
Для того, чтобы создать запрос с группировкой в Конструкторе запросов, необходимо в окне конструктора запросов нажать кнопку с изображением знака суммы на панели инструментов, после чего в нижней части таблицы появится строка Групповая операция. Для каждого столбца можно выбрать одну из групповых функций. В полях запроса с групповыми операциями не должно быть полей, не участвующих в группировке. Например, для таблицы с информацией о фирмах
создадим запрос, который для каждой фирмы будет посчитывать суммарную сумму договора.
Допустимы также несколько операций группировок. Например, можно сгруппировать по названиям фирмы, а потом по видам рекламы.
Перекрестные запросы
Перекрестные запросы позволяют группировать данные как по строкам, так и по столбцам. Чтобы группировать данные, нужно выбрать вкладку Query Type -> Crosstab. Например, чтобы выбрать по всей таблице данных об измерениях температур максимальную и минимальную температуры для каждого региона, нужно составить запрос:
|
Создание внешних объединений в среде Microsoft Access
Внешние объединения позволяют отображать поля всех записей таблицы, включенной в запрос, независимо от существования связанных записей таблицы, включенной в запрос. Различают левое и правое внешние соединения.
Запрос с левым внешним соединением отображает все записи таблицы с уникальным ключевым полем, независимо от того, имеются ли в связанных полях таблицы на стороне «многие» совпадающие значения. Наоборот, запрос, основанный на правом внешнем соединении таблиц, отображает все записи в таблице на стороне «многие», независимо от записей, существующих в первичной таблице.
Создадим внешнее соединения для таблицы сотрудников:
Для того, чтобы создать внешние объединение, необходимо:
1. Создать новый запрос и включить в него таблицы Data и Region.
2. Перетащить в столбцы бланка запроса необходимые столбцы:
3. Щелкнуть на линии объединения полей в верхней части окна конструктора. В результате центральная часть линии станет толще.
4. Дважды щелкните на участке линии объединения. После этого отобразится окно Свойства запроса. Появится окно параметры объединения. Опция 1 – обычное соединение по общему полю (внутреннее соединение), 2 – левое внешнее соединение, 3 – правое внешнее соединение.
Создание самообъединений
Самообъединения связывают поля одной таблицы. Для создания самообъединения в запрос включают копию таблицы, а затем указывают объединение связываемых полей. Чтобы создать самообъединение, необходимо:
|
1. Создать новый запрос и включить в него таблицу.
2. Щелкнуть еще раз на кнопке Добавить и включить в запрос копию таблицы.
3. Создать связи между таблицей и ее копией в верхней части окна конструктора запросов.
4. Выбрать необходимые столбцы.
5. Результат запроса может выглядеть, например, так: