Desktop / For_exams / БазыДанных(3-И) / Лекции / Лекция 7
.docЛекция 7. Запросы в режиме Конструктора (продолжение)
-
Групповые операции в запросах
С целью получения итоговых данных на группах записей из таблиц предусмотрена возможность выполнения групповых операций. Для включения групповых операций в запрос необходимо вызвать команду Итоги (символ ∑) на вкладке «Конструктор» или ту же команду из контекстного меню в бланке запроса. В результате в бланке запроса появляется новая строка Групповая операция.
Если в бланк запроса включена строка Групповая операция, то при построении запроса можно выбрать групповую операцию из раскрывающегося списка для каждого поля, включенного в запрос. По умолчанию для каждого поля выбрана операция Группировка. Для вычислений на группах записей в соответствующее поле запроса можно ввести одну из статистических функций Access, выбрав ее из раскрывающегося списка. В таблице дано описание основных статистических функций Access .
Если для выполнения вычислений на группе записей требуется более сложное выражение, чем одна из этих функций, то в строке Групповая операция для этого поля необходимо выбрать из раскрывающегося списка элемент Выражение, а в строке Поле ввести название поля и формулу для вычисления его значений.
В запросах с групповыми операциями можно использовать критерии отбора записей в двух вариантах.
Вариант 1: вначале отфильтровываются записи, удовлетворяющие заданным условиям отбора, и затем над ними выполняются групповые операции. В этом случае для полей, по которым задаются условия отбора, в строке Групповая операция вводится значение Условие (путем его выбора из раскрывающегося списка), а условия отбора обычным образом помещаются в соответствующей строке.
Вариант 2: вначале выполняются групповые операции по отношению ко всем записям; фильтрация на основе заданных условий отбора производится над записями, полученными в результате выполнения групповых операций. В этом случае условия отбора указываются в соответствующей строке для тех полей, над которыми предварительно выполняются групповые операции; поэтому в строке Групповая операция указано Группировка или одна из статистических функций, перечисленных в таблице.
Статистические функции Access
Функция |
Описание |
Avg |
Вычисляет среднее арифметическое набора числовых значений поля запроса по группе записей |
Count |
Вычисляет количество записей в группе, содержащих значение в указанном поле |
First |
Возвращает значение указанного поля из первой записи группы |
Last |
Возвращает значение указанного поля из последней записи группы |
Max |
Возвращает максимальное значение указанного поля из группы записей |
Min |
Возвращает минимальное значение указанного поля из группы записей |
Sum |
Вычисляет сумму значений указанного поля по группе записей |
StDev |
Вычисляет среднеквадратичное отклонение по набору значений указанного поля в группе записей |
В запросах с групповой обработкой данных могут одновременно использоваться оба варианта условий отбора, описанных выше, т.е. сначала выполняется отбор записей, над которыми затем совершаются групповые вычисления, а после выполнения этих вычислений результирующие записи фильтруются с помощью другого условия.
2. Перекрестные запросы
Перекрестный запрос это запрос, в результирующей таблице которого заголовки строк и столбцов представляют собой значения полей из таблиц (запросов), используемых в данном запросе. Значения, отображаемые в ячейках результирующей таблицы, представляют собой результат вычислений по группам записей из этих таблиц (запросов). Перекрестный запрос может быть создан либо с помощью Мастера перекрестных запросов, либо в режиме Конструктора.
Ограничения при использовании Мастера перекрестных запросов:
-
мастер может создать перекрестный запрос на основе только одной таблицы (или одного запроса);
-
невозможность задания условий отбора.
Для преодоления этих ограничений создается вспомогательный запрос, использующий все требуемые таблицы (запросы), и затем создается перекрестный запрос на основе этого вспомогательного запроса. Другой путь создания перекрестных запросов на основе нескольких таблиц (запросов) создавать его в режиме Конструктора.
3. Модифицирующие запросы
Модифицирующие запросы позволяют создавать новые таблицы, а также добавлять, удалять или изменять данные в имеющихся таблицах. В Access имеется 4 вида модифицирующих запросов:
-
запросы на создание таблиц;
-
запросы на добавление данных;
-
запросы на удаление данных;
-
запросы на обновление данных.
При работе с модифицирующими запросами рекомендуется создавать резервные копии данных, с которыми работает запрос, во избежание случайной порчи или удаления данных. В частности, при практическом выполнении примеров данного раздела рекомендуется предварительно создать копии указанных в тексте таблиц в базе данных пользователя путем импорта этих таблиц из БД Борей (с учетом связей между ними), и при создании и выполнении запроса использовать именно эти копии таблиц.
Запросы на создание таблиц
Запрос на создание таблицы позволяет создать таблицу на основе данных, содержащихся в результирующем множестве запроса. Эти запросы чаще всего используются для экспорта информации в другую БД или другое приложение.
Отметим, что при повторном выполнении запроса на создание таблицы может возникнуть ситуация, когда таблица с соответствующим именем уже имеется в БД. В этом случае при выполнении запроса сначала эта таблица удаляется из БД, и вместо нее создается новая. При этом как перед созданием новой таблицы, так и перед удалением старой Access выводит приглашение для пользователя подтвердить выполнение этих действий.
Запросы на добавление данных
Запрос на добавление позволяет добавить в таблицу, имеющуюся в БД, записи, создаваемые запросом. При этом запрос может включать меньше полей, чем таблица, в которую добавляются записи. В этом случае поля таблицы, которых нет в запросе на добавление, в добавляемых записях остаются пустыми.
Запросы на удаление данных
Удаление записей из таблицы с помощью запроса является операцией, обратной добавлению. Для построения такого запроса рекомендуется создать запрос на выборку данных и включить в него все поля таблицы, из которой удаляются записи, а также задать критерий отбора удаляемых записей.
Запросы на обновление данных
Запросы на обновление (изменение) данных используются для изменения значений полей в определенных записях таблицы с помощью одного общего выражения. Определение множества записей таблицы, в которые должны быть внесены изменения, как и в запросах других типов, выполняется путем задания условий отбора.
Для обновления данных в связанных таблицах с помощью запросов на обновление необходимо использовать режим каскадного обновления связанных полей. Так, если при выполнении запроса будет изменено значение поля первичного ключа в главной таблице, то автоматически изменятся соответствующие значения внешнего ключа в связанных записях подчиненной таблицы.
Если поле, по которому задано условие отбора, находится не в самой изменяемой таблице, а в таблице, с ней связанной, то эта таблица также должна быть включена в запрос.