Вопрос 39. запросы к базе данных. Назначение и виды запросов.

Создание запросов.

 

Перед созданием запроса нужно открыть базу данных, в которой он будет храниться. После этого следует выбрать вкладку Запросы (Queries) и нажать кнопку Создать (New). Начать создание запроса можно также, выбрав в пункте Вставка (Insert) главного меню Access подпункт Запрос (Query). В результате появляется окно, в котором предлагается выбор варианта.

 

Возможны следующие варианты создания запроса:

 

- вручную с помощью конструктора - КОНСТРУКТОР (Design View);

 

- автоматическое создание простого запроса на выборку - Простой запрос (Simple Query Wizard);

 

- автоматическое создание перекрестного запроса для компактного представления данных в виде сводной (перекрестной) таблицы - ПЕРЕКРЕСТНЫЙ ЗАПРОС (Crosstab Querry Wizard);

 

- автоматическое создание запроса на поиск записей с повторяющимися значениями полей - ПОВТОРЯЮЩИЕСЯ ЗАПИСИ (Find Duplicates Query Wizard);

 

- автоматическое создание запроса на поиск записей в одной таблице, которые не имеют подчиненных записей в другой таблице - ЗАПИСИ БЕЗ ПОДЧИНЕННЫХ (Find Unmatched Query Wizard).

 

Создаваемые запросы основаны на полях таблиц и\или запросов из базы данных. Все способы, кроме первого, реализуются с помощью Мастеров, упрощающих разработку запроса. Если созданный запрос не удовлетворяет требованиям, то можно воспользоваться Конструктором, либо создать заготовку запроса с помощью мастера, которую затем подправить в режиме Конструктора.

 

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

 

Вызов Конструктора запросов производится при создании запроса или открытии существующего запроса и переводе его в режим Конструктора. В первом случае перейти в режим Конструктора запросов можно в окне открытой базы данных из вкладки Запросы (Queries) двумя способами: нажатием кнопки ОК в появившемся окне либо нажатием кнопки Конструктор (Design). Для перевода запроса в режим Конструктора достаточно щелкнуть мышью по кнопке на панели инструментов. Заметим, что при вызове Конструктора в главном меню Access появляется дополнительный пункт ЗАПРОС (Query), который имеет подпункты, позволяющие выполнять различные операции в процессе создания запроса: выполнение запроса, добавление таблицы в модель запроса, изменение вида запроса и т.д.

 

Составление запроса в режиме Конструктора в общем случае включает в себя определение следующего:

 

- таблиц и полей таблиц;

 

- вида запроса (выборка, добавление, удаление, перекрестный запрос, SQL-запрос);

 

- условий отбора записей;

 

- параметров отображения результатов выполнения запроса (показ полей, сортировка значений).

 

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

 

 

Для указания таблиц, используемых в запросе, нужно поместить в запросную схемы этих таблиц или запросов и указать связи между ними. Включение объектов в запрос производится в окне ДОБАВЛЕНИЕ ТАБЛИЦЫ (Snow Table), которое вызывается автоматически (при создании запроса) или принудительно при работе с запросом путем нажатия кнопки на панели инструментов.

 

При создании запроса Access по умолчанию предоставляет заготовку запроса на выборку. Изменить вид запроса можно с помощью пункта ЗАПРОС (Query) основного меню системы, где возможные виды запросов перечислены как подпункты меню. Этот способ не совсем удобен и очевиден.

 

Для создания запроса в виде инструкции языка SQL можно при наличии на экране запросной формы воспользоваться пунктом меню ЗАПРОС / ЗАПРОС SQL (Query\ SQL), в котором выбрать нужный вид SQL-запроса (на объединение , к серверу или управляющий). Если запрос уже описан в запросной форме, выбор упомянутого выше пункта приведет к преобразованию запроса, если возможно, в предложение языка SQL. Заметим, что обратный переход не получается - при этом появляется пустая запросная форма.

 

Завершить создание запроса можно следующим образом:

 

- выбором пункта меню ФАЙЛ / Сохранить (File\Save);

 

- выбором пункта меню ФАЙЛ / Сохранить как \ Экспорт (File\Save AS / Export);

 

- нажатием кнопки Сохранить (Save) на панели инструментов;

 

- путем закрытия окна создания запроса.

 

В Access имеется несколько видов запросов:

 

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

 

• запрос на создание таблицы, основанный на запросе на выборку, но в отличие от последнего результат этого запроса сохраняется в новой таблице;

 

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

 

Основы конструирования запросов

 

Основные принципы конструирования запроса заложены в технике конструирования запроса на выборку, являющегося основой всех видов запросов.

 

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

 

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

 

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

 

Для создания запроса в окне базы данных надо выбрать закладку Запрос и нажать кнопку [Создать]. В открывшемся окне Новый запрос из предложенных типов запросов (Конструктор, Простой запрос, Перекрестный запрос. Повторяющиеся записи. Записи без подчиненных) следует выбрать Конструктор.

 

В окне Добавление таблицы выбрать используемые в запросе таблицы и нажать кнопку [Добавить]. Затем, нажав кнопку [Закрыть], выйти из окна Добавление таблицы.

 

В результате появится окно конструктора запросов Имя запроса : запрос на выборку.

 

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

 

Схема данных запроса. В окне запроса отображаются выбранные таблицы и связи между ними, имеющиеся в логической схеме (схеме данных) БД. Кроме того, Access автоматически уста­навливает между таблицами дополнительные связи, которых не было в логической модели, в том случае, если таблицы имеют поля с одинаковыми именами и типами данных (атрибутами). Ло­гические связи между таблицами, которые Access не может установить автоматически, может создать пользователь, перетащив задействованные в связи поля из одного списка полей в другой.

 

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