Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
68
Добавлен:
27.03.2015
Размер:
50.69 Кб
Скачать

Лекция 7. Запросы в режиме Конструктора (продолжение)

  1. Групповые операции в запросах

С целью получения итоговых данных на группах записей из таблиц предусмотрена возможность выполнения групповых операций. Для включения групповых операций в запрос необходимо вызвать команду Итоги (символ ∑) на вкладке «Конструктор» или ту же команду из контекстного меню в бланке запроса. В результате в бланке запроса появляется новая строка  Групповая операция.

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

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

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

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

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

Статистические функции Access

Функция

Описание

Avg

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

Count

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

First

Возвращает значение указанного поля из первой записи группы

Last

Возвращает значение указанного поля из последней записи группы

Max

Возвращает максимальное значение указанного поля из группы записей

Min

Возвращает минимальное значение указанного поля из группы записей

Sum

Вычисляет сумму значений указанного поля по группе записей

StDev

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

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

2. Перекрестные запросы

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

Ограничения при использовании Мастера перекрестных запросов:

  1. мастер может создать перекрестный запрос на основе только одной таблицы (или одного запроса);

  2. невозможность задания условий отбора.

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

3. Модифицирующие запросы

Модифицирующие запросы позволяют создавать новые таблицы, а также добавлять, удалять или изменять данные в имеющихся таблицах. В Access имеется 4 вида модифицирующих запросов:

  1. запросы на создание таблиц;

  2. запросы на добавление данных;

  3. запросы на удаление данных;

  4. запросы на обновление данных.

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

Запросы на создание таблиц

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

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

Запросы на добавление данных

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

Запросы на удаление данных

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

Запросы на обновление данных

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

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

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

Соседние файлы в папке Лекции