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

Для манипулирования реляционными данными можно использовать QBE (Query-by-Example) – язык запросов по образцу. Он был создан Коддом как средство, облегчающее работу неспециалистов. Язык QBE использует визуальный подход для организации доступа к информации в базе данных. При создании QBE-запроса Access неявно генерирует предложения SQL, эквивалентные по выполняемым действиям QBE-запросу.

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

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

В Microsoft Access возможно создание в QBE четырех основных типов запросов на выбор данных из таблиц:

ü Запрос на выборку – извлекает данные из одной или несколько таблиц и отображает их на экране в виде таблицы;

ü Запрос с параметром – разновидность запроса на выборку. При выполнении запроса Access отображает диалоговое окно, в которое пользователь должен ввести параметр – условие отбора;

ü Итоговый – разновидность запроса на выборку. Используется в случае, когда интерес представляют не записи из таблицы, а итоговые данные по определенному полю, сгруппированные по критерию;

ü Перекрестный запрос – группирует данные из одной или нескольких таблиц и выводит их на экран в виде электронной таблицы.

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

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

Простейший запрос на выборку обеспечивает отбор данных из единственной связанной с этим запросом таблицы. Более сложные запросы отбирают данные из нескольких связанных таблиц. Для формирования запроса на выборку надо запустить конструктор запросов, указать имя базовой таблицы (или имена нескольких связанных таблиц) и поместить в бланк запроса требуемые поля.

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

На рис 7. представлен пример запроса на выборку данных из одной таблицы. Запрос выполнен с помощью конструктора. По полю Тема задан критерий отбора – Учебник. При выполнении этого запроса на экране будет сформирована таблица с полями, отмеченными галочкой Вывод на экран. В соответствии с критерием отбора будут выбраны книги с тематикой – Учебник.

Рис 7

Запрос на выборку с параметром. При конструировании запроса условия отбора для каждого из полей могут быть заданы непосредственно при заполнении бланка запроса, однако не всегда заранее известно, по каким критериям потребуется выбирать данные. Access позволяет создавать так называемые запросы с параметрами, к которых вместо условия отбора в соответствующем поле запроса задается параметр – информативный текст-приглашение, заключенный в квадратные скобки, например [ Задайте значение … ]. В процессе выполнения запроса для каждого параметра на экране формируется специальное окно, над рамкой которого расположено соответствующее "приглашение". Запрос будет выполнен только после того, как пользователь введет во все окна условия отбора для каждого из параметров.

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

Функция Результат применения функции
Sum Сумма всех значений поля в каждой группе
Avg Среднее арифметическое всех значений поля в каждой группе. «Пустые» поля (имеющие значение Null) игнорируются.
StDev Стандартное среднеквадратичное отклонение для всех значений поля каждой группы
Var Статистическая дисперсия для всех значений поля каждой группы
Min Наименьшее значение поля в каждой группе
Max Наибольшее значение поля в каждой группе
First Первое значение поля в группе
Last Последнее значение поля в группе
Count Число записей группы, в которых значение поля отлично от Null. Для подсчета количества всех записей группы используется выражение Count(*).

Удобной формой представления результатов итогового запроса-выборки является перекрестный запрос, в котором итоговые данные располагаются на пересечении строк и столбцов (в стиле электронной таблицы Excel). Например, ячейки первого столбца содержат названия месяцев, а заголовки остальных столбцов – названия групп товаров. Такие запросы удобно создавать с помощью мастера перекрестных запросов.

Модифицирующие запросы. В Access существуют следующие типы активных запросов:

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

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

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

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

Модифицирующий запрос формируется на базе предварительно созданного запроса-выборки. Для этого необходимо открыть запрос-выборку в режиме конструктора и выбрать в меню "Запрос" требуемое действие в соответствии с типом формируемого активного запроса. После сохранения запроса его следует выполнить – только после этого в базу данных будут внесены соответствующие изменения.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: