Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 14 Базы данных и СУБД.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

Проектирование запросов с помощью мастера

В некоторых случаях запросы удобнее строить с помощью мастеров, что, как правило, существенно ускоряет процесс проектирования запроса и сводит к минимуму ошибки проектирования. В СУБД Access можно использовать различные мастера для создания следующих запросов: «Простой запрос», «Перекрестный запрос», «Повторяющиеся записи», «Записи без подчиненных». Все эти типы запросов можно построить и в режиме конструктора.

Формирование простого запроса

Для создания запросов с помощью какого-либо мастера необходимо в базовом окне выбрать вкладку «Запросы» и щелкнуть по инструменту «Создать» или выбрать меню «Вставка/Запрос». После этого сформируется окно:

 

В форме «Новый запрос» нужно выбрать тип запроса, который предполагается строить, и щелкнуть по кнопке ОК.

Рассмотрим формирование простого запроса.

 

В поле «Таблицы и запросы» этого окна необходимо выбрать из предлагаемого списка таблицу или запрос, на основе которого предполагается строить запрос. После этого в левой области окна сформируется список доступных полей выбранного объекта. Чтобы включить поля в проектируемый запрос, используются кнопки и . Кнопка позволяет выбрать для создаваемого запроса предварительно выделенные поля, а кнопка – все поля. Кнопки и позволяют исключать поля из списка выбранных полей. В рассматриваемом случае выбраны все поля запроса «Издательства запрос».

 

Нажмем кнопку «Далее».

 

Построенному запросу по умолчанию присвоено имя. Оно формируется из имени объекта, на основе которого строится запрос, и слова “запрос”. Это имя можно изменить или оставить без изменений, при необходимости его можно будет изменить позже в базовом окне СУБД Access.

Посредством радиокнопки «Изменить макет запроса» сформированный запрос можно отобразить в режиме конструктора с целью его анализа и модификации. С помощью радиокнопки «Открыть запрос для просмотра данных» можно просмотреть результаты выполнения построенного запроса. После нажатия кнопки «Готово» результаты выполнения запроса отобразятся в следующем виде:

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

После закрытия последнего окна с помощью кнопки оконного меню необходимо дать подтверждение на сохранение запроса.

Формирование перекрестного запроса

Перекрестный запрос позволяет вывести данные в таком виде, который предусматривает вывод заголовков столбцов, заголовков строк и значений в областях пересечения заголовков строк и столбцов. При проектировании перекрестного запроса следует знать, что в качестве заголовков столбцов можно задействовать значения одного поля, в качестве заголовков строк можно задействовать значения от одного до трех полей, в качестве значений можно задействовать только значения одного поля (как правило, это поле числового типа). В связи с этим следует строить перекрестный запрос на базе той таблицы или запроса, для которых перекрестный запрос имеет смысл. Например, для таблицы с зарплатами сотрудников или для таблицы с ценами товаров использование перекрестного запроса может оказаться полезным.

Для создания перекрестного запроса надо в форме «Новый запрос», которая уже использовалась нами в предыдущем примере выбрать позицию «Перекрестный запрос». После этого сформируется следующее окно:

В этом окне необходимо выбрать от одного до трех полей, которые в перекрестном запросе будут использоваться в качестве заголовков строк. Как правило, в качестве таких полей выбираются текстовые поля или поля типа дата. В данном случае выбрано поле «Автор». В нижней части окна представлен образец перекрестного запроса, который облегчает разработчику его построение.

После нажатия кнопки «Далее» мастер перейдет к следующему шагу. На этом шаге отобразится окно, в котором по аналогии с предыдущим окном необходимо указать поле, значения которого будут использоваться в качестве заголовков столбцов. В данном случае в качестве заголовков столбцов задействованы значения поля «Код книги».

На следующем шаге работы мастера сформируется окно:

 

В этом окне нужно выбрать поле, по которому в ячейках запроса будут формироваться итоговые значения. В данном случае имеет смысл в качестве поля для итогов выбрать поле «Цена», а в качестве функции, которая будет выполняться над значениями данного поля, – функцию Sum (Сумма). Посредством флажка «Вычислить итоговое значение для каждой строки?» можно обеспечить формирование дополнительного поля, в котором будут суммироваться стоимости книг каждого автора.

После выбора итогового поля и перехода к следующему шагу мастера сформируется окно, задания имени запроса.

 

Результаты выполнения перекрестного запроса:

 

 

Как видно из этого рисунка, сформировано поле «Итоговое значение», в которое занесены суммарные цены по каждой строке.

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

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

Вычисляемые поля в запросах.

Допустимо использование вычисляемых полей. Для этого применяется «построитель выражений». В этой структуре используются следующие обозначения:

  • Sum – определяет сумму значений числового поля.

  • Count – определяет количество группируемых записей.

  • Min и Max – определяют минимальное и максимальное значение поля.

  • First – выбирает первое значение.

Особенности запросов.

Особенность запроса состоит в том, что по запросу выбираются данные из базовых таблиц, и на их основе создаются временные результирующие таблицы.

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

В запрос заносятся только требуемые поля из общей таблицы, поэтому просмотр результата в значительной мере упрощается.

Дополнительные объекты СУБД