Вопрос 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 не может установить автоматически, может создать пользователь, перетащив задействованные в связи поля из одного списка полей в другой.