Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Запросы на изменение БД. Краткие сведения



Запросами на изменение называются запросы, которые за одну операцию изменяют или перемещают несколько записей. Эти запросы-действия предназначены для выполнения требуемых действий над данными таблиц. Они позволяют добавлять, изменять или удалять данные. В СУБД MS Access существует 4 типа запросов-действий:

- запрос на создание новой таблицы;

- запрос на замену данных (обновление);

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

- запрос на удаление записей.

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

Рис. 1. Перечень запросов на изменение БД

Выполнение запроса-действия приводит к изменению содержимого базы данных. При выполнении таких запросов следует быть осторожным, так как необдуманное применение этих запросов может привести к необратимой утрате информации в базе данных. Поэтому MS Access автоматически помечает в окне базы данных запросы-действия символом «!».

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

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

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

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

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

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

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

2. Измените тип запроса. Для этого на вкладке Конструктор выполните команду Обновление , или, сделайте щелчок правой кнопкой мыши по свободному месту схемы данных, выберите из контекстного меню пункт Тип запроса, Обновление.

3. С помощью Построителя выражений введите в строку Обновление для поля Стоимость обучения формульное выражение:

[Стоимость обучения]*1,5

4. Выполните запрос и сохраните его, присвоив имя Запрос на обновление 1.Запрос в режиме конструктора представлен на рис.5.1.

Рис.5.1. Запрос на обновление 1

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

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

1. Откройте таблицу Студент в режиме Конструктора.

2. Добавьте в таблицу текстовое поле Место практики размером 30 байт (рис.5.2).

Рис.5.2. Добавление нового поля в таблицу Студент

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

4. Измените тип запроса, преобразовав его в запрос на обновление.

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

6. Введите в строку Условие отбора для поля Номер группы следующие слова в квадратных скобках: [Введите номер группы].

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

8. Сохраните с именем Запрос на занесение места практики 1. Запрос в режиме Конструктора представлен на рис.5.3.

9. Выполните запрос 2 раза, чтобы для двух групп в таблице Студент назначить разное место практики.

10. Откройте таблицу Студент, чтобы проверить выполнение запроса.

Рис. 5.3. Запрос на занесение места практики 1

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

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

2. Добавьте в бланк запроса поле Место практики.

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

IIF([Номер группы]=1170;“Банк”;IIF([Номер группы]=4200;”Проектное бюро”;” “))

Примечание: Номера групп замените на существующие в вашей базе данных номера.

4. Выполните запрос и сохраните его с именем Запрос на занесение места практики 2. Запрос в режиме конструктора представлен на рис.5.4.

Рис. 5.4. Запрос на занесение места практики 2

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

1. Создайте в базе данных две новых таблицы с именами Дисциплина и Вспомогательная.

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

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

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

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

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

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

Рис. 5.5. Таблица Дисциплина

3. В таблицу Вспомогательная включите только одно поле (убедитесь, что оно не будет ключевым):

- Оценка–числовое, размер –байт.

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

Рис.5.6. Таблица Оценка с одной пустой записью

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

6. Измените тип запроса, выполнив команду Создание таблицы , расположенную на вкладке Конструктор.

7. В появившемся диалоговом окне Создание таблицыприсвойте таблице имя Ведомость 1(рис.5.7).

Рис.5.7. Диалоговое окно Создание таблицы

8. Введите в бланк запроса следующие поля:

- Номер группы,

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

- Наименование дисциплины,

- ФИО,

- Номер зачетной книжки,

- Оценка.

9. Введите в строке Условие отбора для поля Номер группы следующие слова в квадратных скобках: [Введите номер группы:]

10.Введите в строке Условие отбора для поля Код дисциплины следующие слова в квадратных скобках: [Введите код дисциплины:]

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

Рис.5.8. Запрос на создание экзаменационной ведомости

 

12. Выполните полученный запрос6 раз, чтобы создать6 ведомостей по трем дисциплинам для 2-х групп(коды дисциплин должны совпадать для первой и второй группы). Номера групп и коды дисциплин задавайте в окне ввода параметров.

13. После каждого выполнения запроса переименовывайте полученную таблицу Ведомость 1. Присвойте созданным таблицам имена Ведомость11Ведомость16.

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

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

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

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

3. Измените тип запроса, выполнив команду Добавление , расположенную на вкладке Конструктор.

4. В окне Добавление(рис.5.9) введите имя таблицы Общая ведомость, к которой в дальнейшем будут добавлены остальные ведомости с 12-й по 16-ю.

Рис.5.9. Диалоговое окно Добавление

5. Введите в строку Поле бланка запроса все поля таблицы Ведомость 12, перетащив поле *(звездочка) в бланк запроса (рис.5.10).

Рис.5.10. Запрос на добавление в режиме Конструктора

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

7. Не закрывая запроса, добавьте другую таблицу – Ведомость 13, перетащив ее непосредственно из Области перехода в схему запроса.

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

9. Последовательно выполняя п.п.6-8, добавьте в таблицу Общая ведомость данные из таблиц Ведомость 14-16.

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

11. Просмотрите таблицу Общая ведомость, которая должна пополниться записями из таблиц Ведомость 12, 13, 14, 15 и 16. Всего в таблице Общая ведомость должно быть 60 записей (рис.5.11).

Рис.5.11. Таблица Общая ведомость

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

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

2. Укажите тип запроса, выполнив команду Удаление в разделе Тип запроса.

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

4. Введите в строку Условие отбора для поля Номер группы следующие слова в квадратных скобках:

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

5. Введите в строку Условие отбора для поля Код дисциплины следующие слова в квадратных скобках:

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

6. Запрос на удаление НЕвыполняйте.

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

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.