Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
9
Добавлен:
23.02.2016
Размер:
2.35 Mб
Скачать
  1. Запити на зміну бд

Запити на зміну БД змінюють вміст таблиць БД, їх структуру або саму схему БД. До них відносяться:

  • запити на створення нових таблиць в БД, на основі даних, що зберігаються в основних її таблицях;

  • запити на оновлення записів в таблицях БД;

  • запити на додавання нових записів;

  • запити на вилучення із БД непотрібних записів.

Всі ці запити в СУБД Access можна створити, як в режимі QBE, так і на мові SQL.

Розглянемо створення кожного типу таких запитів.

Створення нової таблиці. В режимі Конструктор необхідно створити запити на вибірку, як це описано в попередньому розділі. Після цього:

    • відкрити список кнопки Тип запроса;

    • вибрати режим ;

    • в вікно, що відкривається, потрібно ввести назву нової таблиці, яка буде мати структуру, щойно створеного запиту;

    • закрити бланк створення запиту, задавши йому ім’я, в робочому полі вікна “Запросы” з’явиться піктограма створеного запиту .

Якщо запустити такий запит на виконання, в діалоговому вікні, що відкривається, буде повідомлено скільки кортежів буде в новій таблиці, а її піктограма з’явиться на робочому полі “Таблицы”.

З добавленою таблицею можна поводитися так, як і з основними, але її наповнення буде змінюватися лише після запуску запиту, який її створив. Тому після внесення змін в таблиці БД запит на створення додаткової таблиці потрібно перезапускати, щоб її дані відповідали даним таблиць БД. На рисунку 28 показаний результат створення таблиці „Додаткова таблиця”.

Рисунок 28 – Створення додаткової таблиці

Аналог такого запиту на мові SQL має вигляд:

SELECT DISCIPLINI.N_disciplini AS [Номер дисципліни], AVG(OZINKI.ocinka) AS [Середній бал] INTO [Додаткова таблиця]

FROM DISCIPLINI INNER JOIN OZINKI ON DISCIPLINI.N_disciplini=OZINKI.N_disciplini

GROUP BY DISCIPLINI.N_disciplini;

Запит на оновлення. Цей запит призначений для занесення змін в записи однієї або декількох таблиць. Для створення такого запиту потрібно:

    • відкрити запит в режимі Конструктор;

    • в списку кнопки Тип запроса вибрати режим ; в бланку запиту зникнуть рядкиСортировка та Вывод на экран; замість них з’явиться рядок Обновление;

    • в бланк запиту ввести лише ті поля БД, в яких потрібно змінити дані;

    • в рядок Обновление ввести вираз, який дасть можливість змінити дані цього поля;

    • дописати цей запит в перелік раніше створених запитів і запустити його на виконання.

На рисунку 29 показано запит “Нова стипендія”, який збільшує стипендії для усіх студентів на 25%.

Рисунок 29 – Створення запиту на оновлення

На мові SQL такі запити реалізуються структурою:

UPDATE таблиці БД

SET [ім’я поля = значення поля]

WHERE [умова відбору];

Примітка:

  1. Може бути вказано кілька полів та їх значень через кому. Значенням поля може бути текст, число, математичний вираз, функція чи Select-оператор, який повертає одне значення.

  2. Умова відбору рядків записується по тим же правилам, що і в операторі Select.

Приклади:

  1. Збільшити стипендію на 25% у всіх студентів:

UPDATE STUDENTI

SET stipendiya= stipendiya*1,25;

  1. Замінити всі 4, поставлені 1 жовтня 2007 року, на 5:

UPDATE OZINKI

SET ocinka=5

WHERE ocinka=4 AND data=#10/01/07#;

  1. Замінити студентку Голуб О.В. на студента Іванова І.І.:

UPDATE STUDENTI

SET PIP = ‘Іванов І.І.’

WHERE PIP = ‘Голуб О.В.’;

  1. Студенти перездали іспит по дисципліні “Інформатика” з 2 на 4. потрібно це відобразити в БД:

UPDATE DISCIPLINI INNER JOIN OZINKI ON DISCIPLINI.N_disciplini = OZINKI.N_disciplini

SET OZINKI.ocinka=4

WHERE OZINKI.ocinka=2 AND DISCIPLINI.nazva=’Інформатика’;

Додавання нових записів. Цей запит додає групу записів в кінець однієї або декількох таблиць. Таке доповнення можна здійснити також і з іншої БД.

Дописування нового кортежу в будь-яку таблицю являються тривіальним в режимі ТаблицаОткрыть або за допомогою відповідної форми. Також це можна здійснити, написавши інструкцію на мові SQL за шаблоном: