Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 6.doc
Скачиваний:
8
Добавлен:
28.05.2015
Размер:
952.32 Кб
Скачать

II. Многотабличный запрос

Многотабличный запрос позволяет сформировать записи результата путем объединения взаимосвязанных записей из таблиц базы данных и выбора из них нужных полей и записей. Многотабличный запрос часто осуществляет объединение данных, которые на этапе проектирования были разделены на множество объектов в соответствии с требованиями нормализации. В таких объектах, прежде всего, обеспечивалось отсутствие дублируемости данных в базе, повторяются только значения ключевых полей. В результате выполнения запроса формируется таблица с повторяющимися данными, в которой каждая запись собирает необходимые данные из разных таблиц.

При проектировании и конструировании запроса важнейшим условием является правильное представление о том, как идет объединение записей таблиц при формировании результата.

Рассмотрим технологию конструирования многотабличного запроса на выборку на примере. Допустим, необходимо получить информацию о стоимости автомобилей, заказанных клиентами и количество автомобилей. Результат должен содержать наименование автомобиля, наименование клиента, стоимость автомобиля и количество заказанных автомобилей.

ЗАДАНИЕ 1

Для создания запроса в окне базы данных необходимо:

  1. Выберем вкладку Создание на ленте инструментов. В области Другие щелкните по кнопке Конструктор запросов (рисунок 127).

Рисунок 127 – Кнопка Конструктор запросов

  1. Перед вами откроется окно конструктора запросов (см. рисунок 128).

Рисунок 129 – Окно конструктора запросов.

  1. В окне Добавление таблицы (см. рисунок 130) выберите взаимосвязанные таблицы:

Рисунок 130 – Окно Добавление таблицы

Заказы — для выборки количества заказанных автомобилей (поле «Количество»);

Клиенты — для выборки названия клиента (поле «Название»);

Ассортимент — для выборки наименования товара (поле «Марка»), стоимости автомобилей.

  1. Закройте окно Добавление таблицы.

Результат добавления таблиц представлен на рисунке 131.

Рисунок 131 – Результат добавления таблиц

В окне конструктора запросов будет представлена схема данных запроса, содержащая выбранные таблицы. У таблицы Заказы автоматически установлена связь с таблицами Ассортимент и Клиенты.

Отношения между таблицами схемы данных запроса являются одно-многозначными. Таблица Ассортимент и Клиенты являются подчиненными для таблицы Заказ.

  1. Перетащите с помощью двойного щелчка мыши поля, включаемые в результат выполнения запроса, в строку бланка запроса Поле: «Количество» — из таблицы Заказы; «Название» — из таблицы Клиенты; «Стоимость» и «Марка» — из таблицы Ассортимент (см. рисунок 132).

Рисунок 132 – Окно Бланка запросов

Поскольку в запросе используется несколько таблиц, в бланке запроса удобно видеть наряду с Именем поля Имя таблицы. Если строка Имя таблицы не отображена в бланке запроса, необходимо на ленте инструментов во вкладке Конструктор щелкните по кнопке Имена (рисунок 133).

Рисунок 133 – Имена таблиц

  1. Допустим, необходимо получить информацию о покупке автомобилей конкретных марок — Audi и Ford. В строке Условие отбора, для поля «Марка», запишите наименования этих товаров через логический оператор «or», или же просто в разных строчках бланка запроса. После заполнения бланка запроса он примет вид, представленный на рисунке 134.

Рисунок134 – Вид бланка запросов

  1. Запустите запрос, щелкнув по кнопке Выполнить

Результат выполнения запроса представлен на рисунке 135.

Рисунок 135 – Результат выполнения запроса.

Для того чтобы понять, что получится в результате выполнения запроса, надо знать, в каких отношениях находятся таблицы запроса и как определена связь между ними: установлены ли для связи таблиц параметры обеспечения целостности и какой способ объединения задан для связи.

  1. Сохраните запрос под именем «Количество заказанных автомобилей»

ЗАДАНИЕ 2

  1. Выведите записи о розничных клиентах, заказавших автомобили стоимостью более 600 т.р, от поставщиков American car и Lyngbysild. Сохраните запрос под именем «Розничные клиенты».

  2. Выведите записи о заказах, в которых фигурируют марки автомобилей Volkswagen и Ford, поставщиками которых являются Nokar и Lyngbysild. Сохраните запрос под именем «Volkswagen и Ford».

  3. Выведите записи о менеджерах (телефон и фамилия), которые приняли заказы автомобилей в количестве свыше 2. Сохраните запрос под именем «Количество заказов более двух».

Результат покажите преподавателю.