БД / Базы данных / Лабораторные работы / Лабораторная №12(Запросы_действия)
.docЛабораторная работа № 11.
Тема: Запросы в Access(Запросы действия)
При работе с данными часто бывает необходимо автоматизация. Например, в большой базе данных (10 000 записей) необходимо заменить название некоторой улицы, являющейся частью адреса (она была переименована). Вручную, сделать это на 100% корректно практически невозможно. Для автоматизации решения таких проблем подходящим средством является создание специальной формы запросов, в результате выполнения которых СУБД определенным образом модифицирует исходные данные, хранящиеся в базе.
Такие запросы называются запросы-действие, и с их помощью можно выполнить следующие задачи:
- обновить группу записей (в результате выполнения запроса содержимое нескольких произвольных полей или даже целых записей может быть заменено новыми данными);
- удалить группу записей (в результате выполнения запроса в автоматическом режиме из одной или нескольких таблиц базы данных можно удалить некоторое количество записей);
- вставить данные из другой таблицы (например, перенести еженедельные отчеты филиалов в единую базу данных в головном офисе предприятия)
- создать новую таблицу на основе исходных таблиц или запросов.
Запрос-действие является весьма удобным, полезным и чрезвычайно необходимым рабочим инструментом любого человека, который тем или иным образом сталкивается с СУБД.
Создание, и тем более выполнение, любого запроса-действия в СУБД Microsoft Access всегда состоит из двух этапов:
-
Сначала нужно создать запрос-выборку для того, чтобы проверить правильно ли отбираются записи, правильно ли вы сформулировали запрос;
-
Затем превратить его в запрос-действие и выполнить еще раз – отменить действие будет не возможно!
Смысл в этом следующий: просмотрев результаты выборки, пользователь (разработчик) может даже чисто визуально убедиться в том, что все пройдет "как задумано" и что потом не придется расстраиваться после неправильно заданного действия. Так как запрос-выборка не модифицирует данные, то в случае ошибки вам понадобится лишь заново переделать сам запрос.
Запросы на удаление.
Итак, сначала делаем запрос-выборку (например, мы решили не работать с магазинами сети Копеечка) и, просмотрев итог выборки в режиме таблицы и убедившись, что запрос работает правильно (выбирает именно те записи, которые мы собираемся удалить), можно превратить запрос-выборку в запрос на удаление.



После этого нажимаем ! на панели инструментов и готово!
Задание.
-
Сделайте копию таблицы Продукты – Продукты_копия (копирование выполняется стандартным в Windows способом – Выделить -> Копировать - > Вставить, задав имя).
-
Удалите из новой таблицы продукты с калорийностью > 500.
-
Удалите из этой же таблицы продукты, в названиях которых есть Десерт или Смесь. Вспомнить, как нужно употребить Like.
Like “*Десерт*” or Like “*Смесь*”
Запросы на обновление.
Если вы хотите выполнить запрос на обновление данных, то эта процедура выполняется так - запрос открываем в режим конструктора и на панели инструментов выбираете инструмент для установления ТИПА ЗАПРОСА, в раскрывающемся списке выбрать ОБНОВЛЕНИЕ.
В нижней части бланка запроса можно увидеть новую строку – эта строка называется "Обновление".
Все, что в ней записано, будет занесено в указанные поля вместо того, что в этих полях хранилось до выполнения запроса-обновления!
Задание.
-
В таблице Улицы есть несколько улиц, для которых не задан тип. Найдите эти улицы и задайте тип “улица”. Вспомните, что пустые значения можно найти используя выражение IS NULL.
-
В таблице ПродуктыЗаказа для продуктов, которых заказано >=25, обновите поле Скидка и сделайте ее 1%(введите значение - 0,01).
Запросы на добавление.
1. На примере рассмотрим, как в новую таблицу МагазиныСоветскогоРайона с структурой такой же как и Магазины, добавить информацию о магазинах Советского района. Для этого, создадим пустую таблицу МагазиныСоветскогоРайона. Скопируйте таблицу Магазины и вставьте с параметром “Только структура”

Далее,
-
Начните создавать запрос в режиме конструктора и укажите таблицу Магазины в качестве основы для создания запроса;
-
Измените тип запроса на ЗАПРОС НА ДОБАВЛЕНИЕ
-
В открывшемся окне укажите, куда будете добавлять записи:

В нижней части бланка конструктора запросов сопоставьте имена полей-источников информации и имена полей-получателей информации. В строке Условия отбора задайте “Советский район” для того, чтобы из основной таблицы были отобраны записи с магазинами только Советского района. После этого выполните запрос и посмотрите на содержимое таблицы МагазиныСоветскогоРайона. Выделите в отдельную таблицу магазины других районов города.

2. Создайте в режиме конструктора таблицу ДиректораМагазинов, содержащую два поля
1. НомерДиректора – счетчик, ключевое
2. Фамилия – текстовый, 50 символов
В эту таблицу добавьте фамилии директоров магазинов из таблицы Магазины.
Запросы на создание новой таблицы.
С помощью этого вида запроса вы можете выбрать нужные данные из уже существующих таблиц с помощью обычного запроса на выборку, а затем поместить их в новую таблицу, структура которой определяется структурой записей результирующего множества запроса. Таким образом, процесс создания таблицы с помощью запроса состоит из трех шагов:
-
Создать запрос на выборку.
-
Преобразовать запрос на выборку в запрос на создание новой таблицы, задав имя новой таблицы.
-
Выполнить запрос, тем самым, поместив отобранные записи в новую таблицу.
Задание. Создайте новую таблицу, которая содержала бы следующую информацию
Номер заказа и Общую цену заказа.
Указания. Найдите соответствующий запрос (по таблице ПродуктыЗаказа).и переделайте его в запрос на создание новой таблицы.


Затем этот запрос преобразовать в запрос на группирование, для поля КодЗаказа сделайте Группировку, а для поля Общая цена – суммирование. Далее запрос преобразуйте в запрос на создание новой таблицы ОплатаПоЗаказам и выполните запрос. Перейдите на вкладку Таблицы и посмотрите новую таблицу.
