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

Одним из основных инструментов обработки данных в СУБД являются запросы. С помощью запроса можно выполнить следующие виды обработки данных:

выбрать записи, удовлетворяющие условиям отбора;

включить в результирующую таблицу запроса заданные пользователем поля;

произвести вычисления в каждой из полученных записей;

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

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

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

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

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

Для создания запроса надо в окне базы данных выбрать закладку Запрос и нажать кнопку Создать. В открывшемся окне Новый запрос выбрать Конструктор. В окне Добавление таблицы выбрать используемые в запросе таблицы и нажать кнопку Добавить. Затем кнопкой Закрыть выйти из окна Добавление таблицы. В результате появится окно конструктора запросов - <Имя запроса>: запрос на выборку.

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

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

включения их в результат выполнения запроса,

задания сортировки по ним,

задания условий отбора записей.

При заполнении бланка запроса необходимо:

в строку Поле включить имена полей, используемых в запросе;

в строке Имя таблицы выбрать таблицу –истолчник;

в строке Сортировка выбрать порядок сортировки записей результата;

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

в строке Условие отбора задать условия отбора записей.

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

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

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

В списке полей каждой таблицы на первом месте стоит символ *, который означает «все поля таблицы». Этот пункт выбирается, если в запрос включаются все поля.

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

Условием отбора является выражение, которое состоит из операторов сравнения и операндов, используемых для сравнения.

В качестве операндов выражения могут использоваться литералы, константы или идентификаторы (ссылки).

В выражении условия отбора допускается использование операторов сравнения и логических операторов: =, <,>, <>, Between, In, Like, And, Or, Not, которые определяют операцию над одним или несколькими операндами.

Условия отбора, заданные в одной строке, связываются с помощью логической операции «И», заданные в разных строках - с помощью логической операции «ИЛИ». Эти операции могут быть заданы явно в выражении условия отбора с помощью операторов And и Or соответственно.

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

После ввода выражения в бланк и нажатия клавиши <Enter> ACCESS выполняет синтаксический анализ выражения и отображает его в соответствии с результатами этого анализа.

Вычисляемые поля. В запросе над полями могут производиться вычисления. При вычислениях могут использоваться арифметические выражения и встроенные функции.

Выражение вводится в бланк запроса в пустую ячейку строки Поле. В этой ячейке после нажатия клавиши <Enter> или перевода курсора в другую ячейку формируется имя поля Выражение N. N - целое число, увеличивающееся на единицу для каждого нового создаваемого вычисляемого поля в запросе. Имя вычисляемого поля выводится перед выражением и отделяется от него двоеточием. Например,

Выражение1:[Цена]*[Количество],

где Цена и Количество - имена полей.

Имя вычисляемого поля Выражение 1 - становится заголовком столбца в таблице с результатами выполнения запроса. Это имя можно изменить.

В ACCESS имеются встроенные функции, которые можно использовать в вычисляемых полях. Например, функция Date - формирует текущую дату; статистические функции над полями записей, вычисляющие среднее значение, сумму, минимальное, максимальное значение.

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

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

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

Изменение подписи поля в свойствах поля. Установить курсор на вычисляемое поле в бланке запроса и открыть окно Свойства поля, щелкнув правой кнопкой мыши и выбрав в контекстном меню Свойства. В окне Свойства поля на вкладке Общие ввести нужный текст подписи поля в строку Подпись.