Друк книгиДрук книги

Тема 10. Запити на зміну

      

Сайт: Навчально-інформаційний портал ВП НУБіП України "Ніжинський агротехнічний інститут"
Курс: Система управління базами даних
Книга: Тема 10. Запити на зміну
Надруковано: Гість
Дата: понеділок 20 травень 2024 2:25

Таблиця змісту

1 Запит на створення таблиць

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

Припустимо, у відділі кадрів необхідно створити архів даних на певний момент часу (слід враховувати, що сенс ведення бази даних − це весь час поповнювати її новими даними, записами або вносити зміни в існуючі значення даних, тому час від часу слід створювати проміжні архіви).

Формувати запит по створенню таблиці можна як в режимі Майстра, так і в режимі Конструктора (більш кращий варіант, оскільки дозволяє вводити умови відбору записів).

Нас цікавлять дані станом на сьогоднішній день, які включають прізвища всіх співробітників, що займають посади бухгалтера і головного бухгалтера, які пропрацювали в організації не менше трьох років.

Очевидно для формування запиту, знадобляться таблиці "Особисті дані" і "Надбавки за стаж".

  1. У картку запиту конструктора вносимо необхідні поля з таблиць та задаємо умови відбору даних для архіву (рис. 1).

Рис. 1. Нова таблиця, створена в режимі Конструктор

  1. На панелі натискаємо на піктограму або в поле конструктора з таблицями натискаємо правою клавішею миші та вибираємо з контекстного меню , після чого вибираємо . Вводимо ім'я нової таблиці, наприклад, "Архівні дані" (рис. 2), вказуємо місце розташування таблиці , в іншому випадку необхідно знайти ім'я файлу в іншій базі даних.
  2. Після закриття діалогового вікна "Створення таблиці" (Создание таблицы), закриваємо запит, попередньо задавши йому ім'я, наприклад, "В архів", після чого у вікні переходів бази даних у запитах з'явиться новий рядок .

Рис. 2. Створення імені нової таблиці в поточній базі даних

  1. При відкритті запиту, система дасть повідомлення (рис. 3), натиснувши на кнопку "Так" (Да), система сформує відповідь з відомостями (рис. 4) про створення нової таблиці.

Рис. 3. Вікно з попередженням при зверненні до запит

Рис. 4. Повідомлення системи про створення архівної таблиц

У вікні переходів бази даних з'явилася нова таблиця: , відкриваємо її та отримаємо результати (рис. 4).

Рис. 4. Відомості, скопійовані в архівну таблицю

2 Оновлення записів

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

За допомогою запиту на оновлення записів всі дії автоматизуються.

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

  1. Створюємо запит в режимі Конструктор, включивши до нього поля, що підлягають оновленню, і поля необхідні для завдання умов відбору. У нашому прикладі скористаємося таблицею "Надбавки за стаж" та переносимо до бланку запиту поля "Надбавка" і "Стаж роботи співробітника".
  2. На панелі скористаємося піктограмою або знаходимо її () через контекстне меню, якщо клацнути правою кнопкою миші у вікні таблиці. В результаті з'явиться новий рядок у бланку запиту з найменуванням "Оновлення" (Обновление) (рис. 5).
  3. Заповнюємо бланк запиту, в стовпець "Надбавка" для рядка "Оновлення" (Обновление) вводимо формулу, яка позначає, що зазначена величина надбавки множиться на заданий коефіцієнт. У полі "Стаж роботи співробітника" вводимо умову-припис для відкриття діалогового вікна (рис. 5). Закриваємо запит, при його збереженні задаємо ім'я, наприклад, "Зміна надбавки".

Рис. 5. Заповнений бланк запиту на оновлення записів

  1. У вікні переходів бази даних з'явиться запит , який запускаємо на виконання. При цьому система видасть повідомлення (рис. 6). Натискаємо на кнопку "Так" (Да).

Рис. 6. Попередження системи про запуск запиту на оновлення

  1. У діалоговому вікні, що з'явилося, вводимо діапазон зміни запису (рис. 7) та натискаємо на кнопку ОК, після чого система сформує повідомлення про внесення оновлення (рис. 8).

Рис. 7. Діалогове вікно для введення параметра в таблиці « Надбавка за стаж»

Рис. 8. Повідомлення системи про проведене оновленні

Тепер можете перевірити результати роботи запиту на оновлення, для цього послідовно відкриваємо таблиці і запити, в яких фігурували дані із зазначенням величини надбавки за стаж.

Слід зазначити, що оновлення записів зручно ще й тим, що заміна (зміна) запису здійснюється в режимі діалогу користувача з базою даних.

3 Видалення записів

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

Такого роду дії дуже часто необхідно проводити користувачеві бази даних без участі її адміністратора, тому критерії видалення можна або жорстко задавати в запиті, або вводити за допомогою діалогового вікна.

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

  1. Створюємо новий запит в режимі Конструктора, та переносимо в нього таблицю "Архівні дані", з якої в бланк запиту вносимо лише одне поле "Прізвище".
  2. На панелі інструментів клацаємо по піктограмі  або скористайтеся правою кнопкою миші, щоб в контекстному меню відкрити , а потім . При цьому бланк запиту отримає новий рядок "Видалення" (Удаление).
  3. Задаємо у бланк запиту в рядок "Умова відбору" (Условие отбора) текст, який буде відображатися у діалоговому вікні при виконанні запиту (рис. 9).

Рис. 9. Підготовка запиту на видалення записі

  1. Закриваємо вікно з запитом у Конструкторі та задаємо ім'я запиту, наприклад, "Видалити прізвище з архіву", при цьому у вікні переходів бази даних з'явиться новий вид запиту.
  2. Запускаємо цей запит, при цьому, система сформує повідомлення (рис. 9). Після того, як буде натиснута кнопка "Так" (Да), з'явиться діалогове вікно для введення параметра видалення запису з таблиці "Архівна" (рис. 10).

Рис. 9. Повідомлення системи про запуск запиту на видалення

Рис. 10. Діалогове вікно для введення параметра видалення

  1. Натискаємо на кнопку "ОК", читаємо попередження системи про дію операції видалення (рис. 11) та натискаємо на кнопку "Так" (Да).

Рис. 11. Повторне попередження системи про дію операції видалення

  1. Перевіряємо, як пройшло видалення прізвища, після чого повторюємо виконання запиту.

Необхідно відзначити, що можна вводити кілька полів у бланк запиту на видалення та застосувати інші параметри видалення.

Наприклад, логічні операції, які доцільно використовувати при видаленні декількох записів (наприклад, посади).

У тому випадку, якщо створити запит на видалення для таблиці, яка має зв'язки з іншими таблицями і запитами, то таке видалення записів буде проведено каскадом. Саме для цього при встановленні зв'язків між таблицями використовують позначку в рядку , вікно "Зміна зв'язків" (Изменение связей).

Тому, якщо при створенні схеми даних така позначка не була встановлена, то її завжди можна доповнити при створенні запиту.

Для виконання цієї операції відкриваємо вікно "Схема даних" (Схема данных) і на вкладці "Робота з базами даних" (Работа с базами данных), правою кнопкою миші по зв'язку між таблицями, виберіть рядок , після чого виконуємо необхідні правки у вікні "Зміна зв'язків" (Изменение связей).

4 Питання для самоконтролю

  1. У чому полягає відмінність групи запитів на вибірку від групи запитів на зміну ?
  2. У чому полягає ідея проектування запиту на створення таблиць ?
  3. Дайте короткий алгоритм створення запиту на оновлення.
  4. При виконанні запиту на оновлення, чи відбувається зміна даних у всіх пов'язаних записах інших таблиць і запитів ?
  5. Що відбувається із записами, які призначаються на видалення і чи можна їх відновити після виконання запиту ?
  6. Чи можна сформувати запит на видалення з декількома параметрами в умови видалення ?
  7. Чи вимагає запит на оновлення установки спеціального параметра у вікні зв'язків між таблицями, що б у всіх запитах і таблицях була проведена операція оновлення даних?
  8. Як впливають запити на видалення і зміна на дані, які знаходяться у зв'язаних таблицях і запитах ?