ЛАБОРАТОРНАЯ РАБОТА № 3. Конструирование запросов на изменение.

Цель работы:Освоение технологии конструирования запросов на изменение базы данных.

Краткие сведения о запросах на изменение базы данных.

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

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

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

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

Запрос на создание таблицы создает новую таблицу на основе всех или части данных из одной или нескольких таблиц.

Задание 1. Создайте запрос на обновлениебазы данных. Необходимо создать запрос, при выполнении которого произойдет увеличение стоимости обучения по всем специальностям в 1.5 раза.

Технология

1. Создайте с помощью конструктора новый запрос. Выберите в качестве исходной таблицы одну таблицу – Специальность.

2. Укажите тип запроса, выполнив команду ЗАПРОС/Обнов­ление или, щелкнув правой клавишей по свободному месту схемы данных, выберите из контекстного меню пункт Тип запроса/Обновление.

3. Выберите поле Стоимость обучения и введите в него с помощью Построителя выражений в строку Обновление выражение: [Стоимость обучения]*1,5.

4. Выполните запрос и сохраните его, присвоив имя Запрос на обновление.

Примечание. Для вывода на экран сообщения с приглашением подтвердить выполнение запроса на изме­нение установите флажок запросов на изменение на вкладке СЕРВИС/Па­рамет­ры/Правка и поиск.

Задание 2. Создайте запрос на обновлениебазы данных. Необходимо создать запрос, при выполнении которого произойдет уменьшение стоимости обучения по двум специальностям на 10%.

Задание 3. Составьте запросдля автоматического занесения в таблицу Студент места практики. Место практики студентов одной и той же группы должно быть одинаково. Номер группы и место практики должны вводиться в диалоговых окнах в процессе выполнения запроса.

Технология

1. С помощью конструктора добавьте в таблицу Студент текстовое поле Место практики размером 30 байт.

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

3. Введите в таблицу описания запроса 2 поля: N группы и Место практики.

4. Введите в строку Условие отбора для поля N группы: [Введите номер группы]

5. Введите в строку Обновление для поля Место практики: [Введите место практики]

6. Выполните запрос и сохраните с именем Запрос на занесение места практики.

Задание 4. Составьте запросдля автомати­ческого занесения в таблицу Студент места практики. В отличие от предыдущего задания запрос должен выполняться без использования диалоговых окон для ввода параметров. Одноразовым выполнением запроса занесите два разных места практики двум группам, например, для группы 121 – Банк, для группы 122- Проектное бюро.

Технология

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

2. Введите в таблицу описания запроса поле: Место практики.

3. Установите курсор в строке Обновление для поля Место практики. Откройте окно Построителя выражения.

4. Раскройте список встроенных функций. Найдите категорию функций Управление. Выберите функцию IIF. Введите аргументы функции, например, следующим образом

IIF([N группы]=121;“Банк”;IIF([N группы]=122;”Проектное бюро”;” “))

5. Выполните запрос и сохраните его с именем Запрос 2 на занесение места практики.

Задание 5. Составьте запрос на создание новой таблицы– Экзаменационная ведомость. Необходимо сконструировать запрос, при выполнении которого можно будет создавать заполненные данными таблицы со следующими столбцами:

- № группы;

- Код дисциплины;

- ФИО студента;

- № зачетной книжки

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

Предварительно необходимо дополнить базу данных еще двумя таблицами - Дисциплина и Вспомогательная.

Таблица Дисциплина должна иметь следующий состав полей:

- Код дисциплины – ключевое поле, длинное целое;

- Наименование дисциплины – текстовое поле, 30 символов;

- Лекции (часов) – числовое поле, целое;

- Практика (часов) – числовое поле, целое;

Введите в таблицу Дисциплина 5-6 строк с различными кодами и наименованиями дисциплин.

В таблицу Вспомогательная включите только одно поле:

- Оценка - числовое, байтовое, необязательное.

Создайте в таблице Вспомогательная всего одну запись, не заполняя значение поля Оценка.

Технология

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

2. Укажите тип запроса, выполнив команду ЗАПРОС/Соз­дание таблицы. Присвойте таблице имяВедомость 1

3. Введите в бланк запроса поля: № группы, Код дисциплины, Наименование дисциплины, ФИО, № зачетной книжки, Оценка.

4. Введите для поля № группы параметрическое условие отбора: [Введите номер группы: ]

5.Введите для поля Код дисциплины параметрическое условие отбора: [Введите код дисциплины: ]

6. Присвойте запросу имя Запрос на создание экзаменационной ведомости

7. С использованием запроса создайте 9 ведомостей: по трем дисциплинам для каждой из 3-х групп. Номера групп и коды дисциплин задавайте в окне ввода параметров. Присвойте созданным таблицам имена Ведомость 11, Ведомость 12 и т.д.

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

- установить вкладку базы данных Таблицы;

- выделить исходную таблицу и вызвать правой кнопкой мыши контекстное меню;

- выполнить пункт Переименовать.

8. Заполните созданные таблицы сведениями об оценках, полученных студентами при сдаче экзаменов.

Задание 6. Составьте запрос на добавление записей из одной таблицы в другую.Объедините с помощью такого запроса все заполненные экзаменационные ведомости в одну,назвав ее, например, Общая ведомость.

Технология

1. Создайте в окне базы данных Таблицы копию таблицы Ведомость 11 и замените ее имя на Общая ведомость. Для этого перетащите значок таблицы при нажатой клавише Ctrl.

2. Создайте с помощью конструктора новый запрос. Выберите в качестве исходной таблицу Ведомость 12.

3. Укажите тип запроса, выполнив команду ЗАПРОС/До­бав­ление.В окне Добавление введите имя таблицы Общая ведомость, к которой должны добавляться строки исходной таблицы.

4. Введите в строку Поле бланка запроса все поля таблицы Ведомость 12.

5. Закройте запрос, присвоив ему имя Запрос на добавление.

6. Выполните запрос и просмотрите таблицу Общая ведомость, которая должна пополниться записями из таблицы Ведомость 12.

7. Временно переименовывая другие ведомости в Ведомость 12, добавьте их содержимое в Общую ведомость. Для переименования можно нажимать клавишу F2, если курсор установлен на имени объекта.

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

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

Технология

1. Создайте с помощью конструктора новый запрос. Выберите в качестве исходной таблицу Общая ведомость.

2. Укажите тип запроса, выполнив команду ЗАПРОС/Уда­ление

3. Введите в бланк запроса поля № группы и Код дисциплины.

4. Введите в строку Условие отбора соответственно для каждого из полей:

[Введите номер группы:]и[Введите код дисциплины: ]

5. Добавьте в бланк запроса остальные поля таблицы Общая ведомость.

6. Закройте и сохраните запрос под именем Запрос на удаление.

7. Для просмотра записей перед их удалением откройте запрос в режиме конструктора и щелкните по кнопке Вид. Выберите Режим таблицы. Введите в диалоговых окнах удаляемые № группы и Код дисциплины. Просмотрите удаляемые записи. Закройте запрос.

8. Выполните запрос на удаления и просмотрите результаты его выполнения в таблице Общая ведомость.

Наши рекомендации