Запросы на выборку данных
Цель
Научиться создавать и использовать запросы к данным, хранящимся в связанных таблицах базы данных.
Графический инструментарий для разработки запросов. Ввод условий отбора записей.
Запросы являются одним из основных инструментов выборки и обработки данных в таблицах базы данных. Запросы используются для анализа, просмотра и изменения данных. Запросы могут служить источниками записей для форм, отчетов и страниц доступа к данным.
Результат выполнения запроса – это новая, обычно временная, таблица, которая существует до закрытия запроса. Структура такой таблицы определяется полями, выбранными из одной или нескольких таблиц. Записи формируются путем объединения записей таблиц, участвующих в запросе.
Существует несколько видов запросов (рис.1). Основным является запрос на выборку. С его помощью выбираются данные из взаимосвязанных таблиц и других запросов. На основе запроса этого типа могут быть построены запросы других типов.

Рис.1. Классификация запросов в MS Access
Запрос строится на основе одной или нескольких взаимосвязанных таблиц. При этом могут быть использованы таблицы самой базы данных и таблицы, полученные в результате выполнения запросов и сохраненные для дальнейшего применения.
Кроме того, запросы могут формироваться на основе других запросов с использование временных таблиц, получаемых сразу при выполнении этих запросов.
Задание 1. Графический инструментарий для разработки запросов
Запросы достаточно сложного уровня можно создавать в режиме КОНСТРУКТОРА. СУБД Microsoft Access предоставляет удобное для пользователя диалоговое графическое средство формирования запросов по образцу – QBE (Query by Example). Инструментарий QBE располагает встроенными интеллектуальными компонентами, с помощью которых легко может быть построен достаточно сложный запрос.
Окно КОНСТРУКТОРА запросов QBE имеет следующую организацию (рис.2).

Рис.2. Окно КОНСТРУКТОРА запросов QBE
С отдельными компонентами КОНСТРУКТОРА запросов мы познакомимся, создавая запросы к базе данных.
Создадим запрос на выборку заказов, которые были сделаны после 01/01/2008 года.
1. Выберите в главном меню базы данных СОЗДАНИЕ – КОНСТРУКТОР ЗАПРОСОВ.
2. Для выполнения запроса нам достаточно данных из одной таблицы – ЗАКАЗ, поэтому в открывшемся списке таблиц щелкните дважды только по таблице ЗАКАЗ. Закройте окно ДОБАВЛЕНИЕ ТАБЛИЦ.
Если вам потребуется добавить таблицу уже после того, как вы закрыли список таблиц, нажмите на панели инструментов на кнопку
ОТОБРАЗИТЬ ТАБЛИЦУ.
3. Переносить поля в бланк запроса можно двумя способами: перетаскивать поля непосредственно из таблицы или выбирать поля из раскрывающегося списка в заголовке пустого поля (рис.3).
Если перетащить символ * из таблицы в поле запроса, то все поля таблицы будут активными полями для запроса.

Рис.3. Выбор поля для запроса
4. Перетащите поля НОМЕР_ЗАКАЗА и ДАТА_ЗАКАЗА в пустые поля бланка запроса.
5. Введите условие отбора записей как показано на рис.4.

Рис.4. Ввод критериев отбора записей базы данных
6. Для просмотра временной таблицы с найденными записями, соответствующими критерию отбора, нажмите кнопку
ВЫПОЛНИТЬ на панели инструментов или перейдите в режим ВИД (кнопка
на панели инструментов).
Результаты поиска представлены во временной таблице (рис.5).

Рис.5. Временная таблица с результатами поиска
7. Сохраните запрос командой СОХРАНИТЬ из контекстного меню бланка запроса с именем ДАТЫ_ЗАКАЗОВ[3].
8. Вернитесь в режим КОНСТРУКТОРА запросов и внесите следующие изменения: снимите флажок вывода на экран для поля ДАТА_ЗАКАЗА и установите сортировку по убыванию для поля НОМЕР_ЗАКАЗА (рис.6).
9. Запустите запрос на исполнение и сравните результаты вывода с предыдущим случаем (рис. 5).

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