Лабораторная работа №3 Создание запросов на изменение в СУБД ACCESS. приемы:

advertisement
Лабораторная работа №3
Создание запросов на изменение в СУБД ACCESS.
Цель работы: в среде СУБД ACCESS освоить следующие
приемы:




Создание запроса на
Создание запроса на
Создание запроса на
Создание запроса на
удаление записи
обновление записи
добавление записей
создание новой таблицы
Теоретические положения
Существует четыре типа запросов на изменение.




На удаление записи. Запрос на удаление удаляет группу записей из одной или
нескольких таблиц. Например, запрос на удаление позволяет удалить записи о
товарах, поставки которых прекращены или на которые нет заказов. С помощью
запроса на удаление можно удалять только всю запись, а не отдельные поля внутри
нее.
На обновление записи. Запрос на обновление вносит общие изменения в группу
записей одной или нескольких таблиц. Например, на 10 процентов поднимаются
цены на все молочные продукты или на 5 процентов увеличивается зарплата
сотрудников определенной категории. Запрос на обновление записей позволяет
изменять данные в существующих таблицах.
На добавление записей. Запрос на добавление добавляет группу записей из
одной или нескольких таблиц в конец одной или нескольких таблиц. Например,
появилось несколько новых клиентов, а также база данных, содержащая сведения о
них. Чтобы не вводить все данные вручную, их можно добавить в таблицу
«Клиенты».
На создание таблицы. Запрос на создание таблицы создает новую таблицу на
основе всех или части данных из одной или нескольких таблиц. Запрос на создание
таблицы полезен при создании таблицы для экспорта в другие базы данных
Microsoft Access или при создании архивной таблицы, содержащей старые записи.
Понятие запросов-действий
Для быстрого изменения, вставки, создания или удаления
наборов данных из базы данных используются управляющие
запросы или запросы-действия.
Создание запросов-действий аналогично созданию запросоввыборок. Отличие лишь в том, что в режиме конструктора
запросов необходимо указать тип действий над выбранными
записями. Существует всего четыре типа запросов-действий:
Создание таблицы, обновление, удаление, добавление
Лабораторная работа № 3
3 стр. 1 из 7
Создание таблицы. Этот запрос позволяет сохранить набор
данных, вышедших в ответ на запрос, в виде таблицы.
Обновление. Используется для того, чтобы обновить
значения некоторых полей для всех записей, вышедших в ответ
на запрос.
Удаление. Используется
вышедших в ответ на запрос.
Добавление. Используется
имеющуюся таблицу.
ACCESS
значками
отмечает
для
удаления
всех
записей,
для добавления данных
запросы-действия
в
специальными
1. Особенности работы с запросами-действиями
Для того чтобы обезопасить себя от каких-либо
случайностей, необходимо перед выполнением запросадействия создать резервную копию используемой таблицы.
Для создания резервной копии таблицы необходимо перейти
в окно базы данных, выбрать таблицу, в которой произойдут
изменения,
а
затем
воспользоваться
командой
Правка/Копировать.
Затем
выполнить
команду
Правка/Вставить, и в диалоговом окне указать имя для копии
таблицы.
Создание запросов на обновление, добавление и удаление
невозможно без разрушения целостности данных, поэтому
упражняться лучше на созданной копии таблице.
Новый запрос желательно создать вначале как запрос на
выборку. Так вы сможете проверить правильность отбора
записей.
Прежде чем щелкнуть по кнопке Запуск, просмотрите
результат в режиме таблице, воспользовавшись кнопкой Вид.
Быстрое переключение между режимами Конструктора и
Выполнения обычно осуществляется с помощью одноименных
пиктограмм, расположенных на панели инструментов.
2. Запросы на создание таблицы
Для сохранения результатов выборки в реально
существующей таблице используются запросы на создание
таблицы. Это ускоряет доступ к данным, полученным по
запросу. Сохранение в виде отдельной таблицы полезно и в том
случае, если какие-либо данные нужно хранить в течение
длительного времени.
Например, сводную информацию по годам необходимо
хранить в течение 5 лет. Для этого создается итоговый запрос и
результат его выполнения сохраняется в виде отдельной
таблицы. Для этого в режиме Конструктора запросов нужно
выбрать команду Запрос/Создание таблицы.
Лабораторная работа № 3
3 стр. 2 из 7
Access выведет на экран диалоговое окно «Создание
таблицы», где нужно указать имя таблицы, в которой будут
сохранены результаты выборки
3. Запросы на обновление записей
Этот тип запросов-действий предназначен для изменения
значений некоторых полей для всех выбранных записей. После
входа в режим Конструктора запроса нужно выбрать команду
Запрос/Обновление. После этого в бланке запроса появится
строка Обновление. Эта строка используется для того, чтобы
задать новые значения для выбранных записей .
Обновлять значения можно не только в полях критериев, а в
любом поле таблицы. Также для выбранных записей можно
создавать вычисляемые поля.
4. Запрос на удаление записей
Этот вид запросов служит для удаления группы записей базы
данных, удовлетворяющих определенным условиям. Обычный
запрос можно преобразовать в запрос на удаление с
помощьюкоманды Запрос/Удаление в режиме Конструктора
запросов. При этом в бланке запроса появится строка Удаление,
где можно ввести условие для удаления записей
В режиме Конструктора запроса необходимо указать
таблицу, в которой будут проводиться удаления. Затем
определить критерии и обязательно просмотреть результаты
выполнения запроса на выборку.
Если в результате запроса присутствуют только подлежащие
удалению записи, следует преобразовать его в запрос на
удаление.
Удаление записей может привести к непредсказуемым
результатам, в том числе и к нарушению целостности базы
данных, по следующим причинам:
- Таблица является частью отношения один-ко-многим
- В качестве условия обеспечения целостности данных
использована опция Каскадное удаление связанных полей.
Например, вы решили исключить каких-то студентов и
удалить соответствующие записи из таблицы Студенты. При
этом существует также таблица Экзамены, которая связана с
таблицей Студенты, отношением один – ко многим. Если для
обеспечения целостности данных выбрана опция Каскадное
удаление связанных полей, в результате удаления записей о
студентах будут удалены записи об их оценках, то есть
информация об успеваемости!
Если установлена опция Каскадное удаление связанных
полей и вы пытаетесь удалить записи в режиме просмотра
таблицы, то получите предупреждение о возможном удалении
Лабораторная работа № 3
3 стр. 3 из 7
данных в других таблицах. А при использовании запросов на
удаление вы не увидите предупреждения. MS Access выдаст
только информацию о количестве удаляемых записей, но
ничего не скажет про каскадное удаление.
5. Запрос на добавление записей
С помощью запроса на добавление записей можно
скопировать выбранные записи и поместить их в другую
таблицу. Можно также использовать запрос на добавление для
переноса данных в используемую базу данных из другого
источника (из какой-либо другой таблицы).
Выполнение запроса на добавление записей можно начать
(также как и в других запросах-действиях) с запуска запросавыборки – для того, чтобы убедиться, что вы копируете
необходимые записи.
Если необходимо добавить записи к таблице в другой базе
данных, сначала следует присоединить таблицу-источник к
базе, содержащей целевую таблицу, с помощью команды
Файл/Внешние данные/Связь с таблицами. Для отбора
добавляемых записей нужно составить запрос на выборку.
Затем надлежит выполнить составленный запрос и оценить
результат, переключившись в режим таблицы с помощью
команды Вид/Режим таблицы. После этого необходимо
вернуться в режим Конструктора и активизировать команду
Запрос/Добавление.
В открывающемся окне диалога нужно в поле Имя таблицы
имя таблицы, к которой требуется присоединить данные из
результирующего
набора
записей
запроса.
Закрытие
диалогового окна кнопкой ОК приводит к тому, что Access
добавляет в бланк запроса строку Добавление
В строку Добавление автоматически (или вручную )
вставляются имена тех полей целевой таблицы, которые
совпадают с именами полей запроса. Далее следует выполнить
запрос. Для этого выполните команду Запрос/ Выполнить или
щелкните по кнопке Выполнить на панели инструментов. В
специальном диалоговом окне Access укажет сколько записей
будет добавлено к целевой таблице, и потребует подтвердить
выполнение этой операции.
Однако при переключении на запрос-выборку и обратно
Access не сохраняет соответствия имен полей. Так что если
перед запуском соответствующего запроса на добавление
записей вы хотите выполнить запрос-выборку, приходится
заново задавать соответствия имен двух таблиц.
Добавленные по ошибке записи легко находятся и
удаляются. Тем не менее, можно сэкономить время, если
сделать резервную копию таблицы, в которой будет
осуществляться добавление записей.
Лабораторная работа № 3
3 стр. 4 из 7
Выполнение работы
Часть 1
Откройте базу данных Борей, вкладку Запросы.
1. Разработка запроса на создание таблицы
Требуется создать новую таблицу Неперспективные товары на базе таблицы Товары и
включить в нее те товары, поставки которых прекращены.
 В режиме конструктора создайте запрос на базе таблицы Товары, включив в
него все поля этой таблицы
 В поле ПоставкиПрекращены в строке Условие отбора укажите Да (так в
запросе устанавливается значение Истина для логического типа данных,
можно также использовать выражение Истина)
 В верхнем меню Запрос выполните команду Создание таблицы и в
появившемся диалоговом окне “Создание таблицы” укажите имя таблицы
“Неперспективные товары”, выберите переключатель В текущей базе
данных и нажмите кнопку ОК.
 Выполните запрос.
 Появится сообщение о создании новой таблицы с указанием числа записей,
помещаемых в нее. Нужно выбрать Да. В результате будет создана
требуемая таблица, которую можно увидеть на вкладке Таблицы.
 Откройте новую таблицу “Неперспективные товары” и просмотрите ее.
2. Создание запроса на обновление записей
Фирма Борей решила поднять цены на молочные продукты на 10% по отношению к
установленным ранее. Необходимо внести изменения в таблицу Товары.
 В режиме конструктора создайте запрос на базе таблицы Товары, включив в
него все поля этой таблицы
 В верхнем меню Запрос выполните команду Обновление
 В поле Цена в строке Обновление напишите выражение [Цена]+[Цена]*0,1
 В строке Условие отбора укажите для поля код типа 4, что соответствует
Молочным продуктам
 Выполните запрос.
 Появится сообщение об обновлении записей с указанием их числа
 Откройте таблицу “Товары” и просмотрите ее.
3. Создание запроса на удаление записей.
Требуется удалить из таблицы Товары те товары, поставки которых прекращены. Это
удобно сделать с помощью запроса на удаление записей.
 В режиме конструктора создайте запрос на базе таблицы Товары, включив в
него все поля этой таблицы
 В поле ПоставкиПрекращены в строке Условие отбора укажите Да (или
Истина)
 В верхнем меню Запрос выполните команду Удаление.
 Выполните запрос.
 Появится сообщение об удалении записей из таблицы с указанием числа
удаляемых записей. Нужно выбрать Да.
 Откройте новую таблицу “Товары” и просмотрите ее.
Лабораторная работа № 3
3 стр. 5 из 7
4. Создание запроса на добавление записей
Добавим товары из таблицы Неперспективные товары, имеющиеся на складе, в
таблицу Товары.




Создайте в режиме конструктора запрос, содержащий таблицу, записи из
которой необходимо добавить в другую. Это будет запрос на базе таблицы
Неперспективные товары.
В режиме конструктора запроса нажмите стрелку рядом с кнопкой Тип
запроса
на панели инструментов и выберите команду Добавление. На
экране появится диалоговое окно Добавление.
В поле Имя таблицы введите имя таблицы, в которую необходимо
добавить записи. Это будет таблица Товары
Выполните одно из следующих действий.
Если таблица находится в открытой в настоящий момент базе данных(это наш
случай), выберите параметр в текущей базе данных.
Если таблица не находится в открытой в настоящий момент базе данных(это к
общему сведению), выберите параметр в другой базе данных и введите имя базы
данных, в которой находится таблица, или нажмите кнопку Обзор, чтобы указать
путь к базе данных. Можно ввести путь к базе данных Microsoft FoxPro, Paradox
или dBASE, а также строку подключения к базе данных SQL.


Нажмите кнопку OK.
Перетащите из списка полей в бланк запроса поля, которые необходимо
добавить или которые будут использоваться при определении условия отбора.
Если в обеих таблицах выделенные поля имеют одинаковые имена, то
соответствующие имена автоматически вводятся в строку Добавление. Если имена
полей двух таблиц отличны друг от друга, нужно будет указать в строке Добавление
имена полей таблицы-получателя.


Для полей, перемещенных в бланк запроса, введите в ячейку Условие отбора
условие отбора, по которому будет осуществляться добавление. Нашим
условием является наличие товара на складе, т.е. в поле НаСкладе в строке
Условие отбора введем условие >0
Для предварительного просмотра добавляемых записей нажмите кнопку Вид
на панели инструментов. Для возврата в режим конструктора снова
нажмите кнопку Вид
на панели инструментов.

Для добавления записей нажмите кнопку Запуск
на панели инструментов.
Будет выведено сообщение о добавлении записей в таблицу Товары
 Просмотрите таблицу Товары
Часть 2
Лабораторная работа № 3
3 стр. 6 из 7
Выполните самостоятельно конструирование запросов
действия
ЗАДАНИЕ На основе таблиц Билеты и Цены сконструировать
запросы действия, которые выполняют:
• создание таблицы;
• удаление записей в таблицах;
• обновление записей в таблицах;
Выполнить и сохранить все запросы под именами Создание,
Удаление, Обновление соответственно.
Контрольные вопросы
1. Назовите все виды запросов на изменение данных. В чем особенность этих
запросов?
2. Для чего предназначен и как создается запрос на создание таблицы?
3. Для чего предназначен и как создается запрос на обновление записей?
4. Для чего предназначен и как создается запрос на добавление записей?
5. Для чего предназначен и как создается запрос на удаление записей?
Лабораторная работа № 3
3 стр. 7 из 7
Download