§ 5. Формирование запросов на выборку данных

 

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

Запрос — объект БД, который используется для реализации эффективного поиска и обработки данных.

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

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

Запрос на выборку позволяет:

1. Просматривать значения только из полей, которые вас интересуют.
2. Просматривать записи, которые отвечают указанным вами условиям.
3. Использовать выражения в качестве полей.

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

Основные режимы работы с запросами в Access:

1. Режим таблицы. Отображает информацию запроса на выборку в режиме таблицы.

2. Конструктор. В этом режиме определяется структура запроса и условия выбора данных (см. Приложение к главе 1).

(Рассмотрите пример 5.1.)

Создать запрос можно с помощью Мастера запросов либо в Конструкторе (пример 5.2).

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

Основные этапы создания запроса на выборку:

1. Выбор инструмента создания запроса.
2. Определение вида запроса.
3. Выбор источника(ов) данных.
4. Добавление из источника(ов) данных полей, которые должен содержать запрос.
5. Определение условий, которые формируют набор записей в запросе.
6. Добавление группировки, сортировки и вычислений (может отсутствовать).

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

Примеры записи условий в запросах:

Условие

Действие в запросе

Поля с числовым типом данных

>0 And <8

Выбираются записи, у которых значение в этом поле больше 0 и меньше 8.

Not 0

Выбираются записи, у которых значение в этом поле не равно 0.

Поля с текстовым типом данных

"Орша"

Если значение в поле записи равно Орша, то запись включается в результат запроса.

"*к"

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

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

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

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

В режиме конструктора процесс создания запроса находится под вашим контролем, однако здесь есть вероятность допустить ошибку и необходимо больше времени, чем в мастере (пример 5.4).

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

Все запросы, которые рассмотрены в примерах 5.3 и 5.4 , содержат конкретные значения названий, имен, времени и т. д. Если требуется повторить такой запрос с другими значениями в условиях отбора, его нужно будет открыть в конструкторе, изменить условие и выполнить. Чтобы не делать многократно этих операций, можно создать запрос с параметрами. При выполнении такого запроса выдается диалоговое окно Введите значение параметра, в котором пользователь может ввести конкретное значение, а затем получить нужный результат. Параметр запроса определяется в строке Условие отбора конструктора для столбца, содержащего запрашиваемые значения. Параметром является слово или фраза, заключенные в квадратные скобки. Параметр будет выдаваться в виде приглашения в диалоговом окне при выполнении запроса (пример 5.5).

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

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

Наряду с запросами на выборку часто применяются запросы на действие. С помощью таких запросов можно обновлять значения полей записей, добавлять новые или удалять уже существующие записи. В СУБД Access такие запросы можно создать в режиме конструктора, воспользовавшись инструментами группы Тип запроса:

Пример 5.1. Режимы работы с запросами.

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

SQL (англ. structured query language — язык структурированных запросов). Применяется для создания, редактирования и управления данными в реляционной базе данных.

Пример 5.2. Группа инструментов Запросы вкладки Создание.

Пример 5.3. Создание запроса на выборку с помощью Мастера запросов.

1. Выбрать инструмент .

2. Выбрать вид запроса.

3. Выбрать источник данных.

4. Задать поле, содержащее повторяющееся значение.

5. Выбрать поля для отображения вместе с повторяющимися значениями.

6. Просмотреть и/или сохранить запрос.

Пример 5.4. Создание простых запросов на выборку с помощью Конструктора запросов.

1. Выбрать инструмент

2. Выбрать источник данных.

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

4. Записать условие формирования набора записей в запросе.

4.1. Выбор по полю с текстовым типом данных.

Результат:

      

Результат:

4.2. Выбор по полю с числовым типом данных.

Результат:

4.3. Использование составного условия.

Результат:

      

Результат:

5. Сохранить запросы.

Пример 5.5. Создание запроса с параметрами.

1. Открыть один из запросов, созданных в примере 5.4 в конструкторе.

2. Изменить условия отбора на:

3. Сохранить с новым именем и открыть в режиме таблицы.

4. В диалоговом окне набрать одно из названий кинотеатра.

5. Просмотреть запрос.

Пример 5.6. Создание итогового запроса.

Создать итоговый запрос, определяющий, сколько мальчиков и сколько девочек посещают факультатив по математике.

1. Источник данных — таблица «Учащиеся».

2. Создать запрос с помощью конструктора (добавить в запрос только поле «Пол»).

3. Сгруппировать данные по полю «Пол» (нажать кнопку   в группе Показать или скрыть).

4. Добавить вычисляемое поле (в строке нового поля Групповая операция в списке выбрать функцию Count).

5. Сохранить и просмотреть запрос.