Проектирование запросов

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

1. Запросы выборки (SELECT);

2. Запросы модификации (UPDATE);

3. Запросы удаления (DELETE);

4. Запросы добавления (INSERT);

5. Запросы модификации структуры таблиц (ALTER TABLE);

6. Запросы добавления таблиц (CREATE TABLE).

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

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

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

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

1. В списке объектов базы данных выбрать «Запросы» и нажать «Создание запросов с помощью мастера».

2. Выбрать поля, которые необходимо включить в результирующую таблицу. Для этого в списке «Таблицы и запросы» нужно выбирать необходимые таблицы, а из списка доступных полей в них – поля итоговой таблицы (см. рис. 6).

3. Выбрать тип отчета – подробный или итоговый:

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

b) Итоговый отчет позволяет рассчитать некоторые показатели на основе выбранных данных. Например, можно рассчитать количество студентов по группам. Для этого необходимо нажать «Итоги…» и установить флажок подсчета записей.

Рис. 6. Создание простого запроса

При создании запросов, использующих данные из нескольких таблиц, необходимо учитывать типы объединения этих таблиц. Тип объединения двух таблиц задается при настройке связи между таблицами (см. раздел «Установка связей между таблицами»). Существуют 3 типа объединения:

1. Объединение только тех записей, в которых значения связующих полей совпадают (INNER JOIN – внутреннее объединение).

2. Объединение всех записей родительской таблицы и только тех записей дочерней таблицы, в которых связующие поля совпадают. Если же записи в родительской таблице не соответствует ни одна запись в дочерней, то вместо значений полей дочерней таблицы будут подставлены пустые значения (NULL).

3. Объединение всех записей дочерней таблицы и только тех записей родительской таблицы, в которых связующие поля совпадают. Если в базе данных обеспечена ссылочная целостность, то такое объединение эквивалентно внутреннему (1).

Объединения 2 и 3 называются внешними (LEFT JOIN и RIGHT JOIN).

В Microsoft Access создавать и модифицировать запросы можно и с помощью конструктора запросов (см. рис. 7). Для этого нужно выбрать запрос и во всплывающем меню выполнить команду «Конструктор». В верхней части окна конструктора запросов графически отображается схема данных, используемая для выполнения запроса. Она включает таблицы, другие запросы и связи между ними. С помощью всплывающего меню в схему данных можно добавлять таблицы или запросы, а также удалять их. Можно также редактировать связи между таблицами, для чего нужную связь следует выделить и затем воспользоваться командой всплывающего меню «Параметры объединения».

Рис. 7. Пример использования конструктора запросов

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

1. Поле - соответствует имени поля, из которого берутся данные.

2. Имя таблицы – соответствует названию таблицы, из которой берутся данные.

3. Сортировка – указывает, нужно ли сортировать записи по данному полю.

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

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

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

· Sum – сумма значений поля группы записей;

· Avg – среднее значение;

· Min – минимальное значение;

· Max – максимальное значение;

· Count – количество записей;

· Var – дисперсия значений;

· First – первая запись из группы;

· Last – последняя запись.

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

Для создания запросов других типов (UPDATE, INSERT, DELETE, CREATE TABLE, перекрестного) необходимо выбрать в меню «Запрос» соответствующую команду. При этом изменится содержание задаваемых параметров.


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



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