Міністерство освіти і науки, молоді та спорту України
Національний університет «Львівська політехніка»
Інститут ІКНІ
Кафедра АСУ
Звіт
До лабораторної роботи №3
Проектування запитів до бази даних
Мета
Вивчення засобів розроблення запитів RQBE, виглядів запитів, їхнього виконання та застосування для роботи з реляційними базами даних.
Теоретичні відомості
Запити застосовуються користувачем для вибірки з бази даних інформації, яка його цікавить, тобто відповідає певним критеріям. Наприклад, може йтися про пошук всіх клієнтів, що живуть в Україні, або про вибір відомостей про торгові операції, здійснені за останній квартал.
Якщо необхідно скласти запит на підставі декількох таблиць, то між цими таблицями попередньо необхідно встановити відношення, зв’язуючи поля одне з одним.
Результат роботи запиту Access являє собою таблицю яка називається Dynaset (динамічний, тимчасовий набір даних). Під час кожного виконання запиту заново здійснюється вибірка даних.
За способом побудови запити діляться на: QBE-запити (Query By Example - запит за зразком), користувач дає їм визначення, специфікуючи окремі параметри у вікні проектування з використанням підказок (зразків), та SQL-запити (Structured Query Language - структурована мова запитів). Формулюючи їх, користувач застосовує інструкції і функції, створюючи деякий описання. QBE-запит Access легко транслює у відповідний SQL-запит. Під час зворотної операції можливі деякі нюанси та неточності.
Запити можна поділити на певні категорії: запити на вибір інформації та виконання статистичних підрахунків, запити, що вносять зміни, параметричні та перехресні запити.
Запити за декількома таблицями
Після формування таблиць та встановлення зв’язків між ними можна створювати запити за декількома таблицями одночасно. У результаті цього вміст бази даних буде виглядати так, наче в одній таблиці міститься інформація з декількох таблиць.
Запити, що виконують статичні обрахунки
Часто необхідно знайти інформацію, яка ґрунтується на узагальнених даних. Наприклад, потрібно з’ясувати загальну кількість замовлень або загальну кількість вантажу, відправленого за замовленнями минулого року. Такі підсумкові запити здійснюються завдяки використанню підсумовувальних функцій, які визначають потрібні величини за значенням поля. Можна здійснювати статистичні розрахунки як над всіма записами, так і над групами записів з однієї або декількох таблиць.
Запити на вибірку
Найпоширеніший запит, який здійснює вибірку даних з таблиці, таблиць та з інших запитів
Перехресний запит
У Access можна створювати особливі типи запитів - перехресні. Вони відрізняються тим, що відображають сумарну інформацію у компактному та у зручному для читання вигляді. Перехресний запит створює з таблиці звичайну матрицю, яка описує відповідність значень одного поля значенням іншого поля у таблиці. Він надає кінцеву інформацію для вказаних полів у формі розрідженого масиву. По вертикалі такого масиву відображаються значення першого поля, по горизонталі - другого. На перетині відповідних рядка та стовпчика розміщується підсумкове значення, яке розраховується для поєднання їх у таблиці. Підсумкове значення може бути вибране як агрегатна функція типу сума, кількість тощо. Для наочності нижче подано приклади перехресних запитів.
Запити що вносять зміни
Запити, що вносять зміни, можна використовувати для:
видалення з таблиці або групи таблиць вказаних записів
додавання записів з однієї таблиці у іншу
оновлення інформації у групі записів
створення нової таблиці із записів, вказаних у запиті
Запити, що вносять зміни, безпосередньо працюють з даними, і повернутизміни назад неможливо
Запит на оновлення
Запит, що вносить зміни, можна розглядати як звичайний запит на вибірку, який повинен ще виконувати деякі операції над вказаною групою записів у результуючій таблиці. Застосовуючи запит оновлення, користувач може змінити групу записів, відібраних на підставі певних критеріїв.
Запит на створення таблиці
Для отримання нової таблиці необхідно побудувати запит на створення таблиці. Запити на створення таблиці використовуються для створення резервних копій таблиць перед виконанням запитів, що змінюють їхній вміст.
Запит на додавання
Запит на додавання застосовується для вміщення запису з таблиці у будь-яку іншу. Таблиця, в яку потрібно додати записи, вже повинна існувати. Записи можна додавати як у межах однієї бази даних, так і у таблицю будь-якої іншої бази даних Access.
Запит на видалення записів
З усіх запитів, що вносять зміни, запит на видалення найнебезпечніший. На відміну від інших типів запитів, він видаляє записи з таблиці назавжди і без можливості відмінити зміни. Як і інші запити, що вносять зміни, запит на видалення обробляє групу записів, спираючись на критерії вибору. Такий запит може видаляти записи з декількох таблиць одночасно.
Параметризований запит
За допомогою параметризованих запитів можна автоматизувати зміну критеріїв у часто використовуваних запитах. Параметризований запит, як випливає з його назви, кожен раз під час виконанні потребує введення певних параметрів. Це виключає потребу у постійній модифікації запиту у режимі конструктора запиту для зміни значень критеріїв. Параметризовані запити також зручно використовувати у формах та звітах, оскільки кожен раз під час відкриття Access вимагає від користувача ввести необхідний параметр. У побудові таких запитів обмежень на кількість параметрів немає, тобто можна побудувати запит, що вимагатиме введення декількох параметрів.
Створення запитів на додавання проходить за таким алгоритмом:
Відкрийте базу даних із записами, які слід додати.
На вкладці Створити у групі Додатково клацніть елемент Конструктор запиту.
Відкривається конструктор запитів, відображається діалогове вікно Відображення таблиці.
Виберіть будь-яку комбінацію таблиць або запитів із записами, які слід додати, натисніть кнопку Додати, а потім кнопку Закрити.
Таблиці або запити відображаються у вигляді одного або кількох вікон у верхній області конструктора запиту. Ці вікна містять список усіх полів кожної таблиці або запиту. Нижче показано типову таблицю в конструкторі запитів.
/
Клацніть двічі поля, які слід додати. Вибрані поля відображаються в рядку Поле (нижня область конструктора запитів).
Можна додати вираз, наприклад, =Date() для автоматичного повернення сьогоднішньої дати або можна додати поля таблиці чи запиту до клітинок конструктора. До однієї клітинки можна додати одне поле таблиці або запиту.
Щоб швидко додати всі поля, клацніть двічі кнопку із символом зірочки (*) у верхній частині списку полів таблиці. Нижче відображено конструктор запиту з усіма доданими полями.
/
Можна також ввести один або кілька критеріїв у рядку Критерії конструктора. У таблиці нижче наведено кілька прикладів критеріїв і пояснено їх вплив на запит.
На вкладці Конструктор у групі Результати клацніть елемент Виконати.
Переконайтеся, що запит повернув записи, які слід оновити. Якщо потрібно додати або видалити поля із запиту, перейдіть знову до подання конструктора та додайте поля, як описано в попередньому кроці, або виберіть непотрібні поля й натисніть клавішу DELETE, щоб видалити їх із запиту.
Перейдіть до наступної процедури, за допомогою якої запит на вибірку перетворюється на запит на додавання.
Перетворення запиту на вибірку на запит на додавання
Клацніть правою кнопкою миші вкладку документа відкритого запиту та виберіть у контекстному меню пункт Конструктор.
або
В області переходів клацніть правою кнопкою миші запит і виберіть у контекстному меню пункт Конструктор.
На вкладці Конструктор у групі Тип запиту клацніть елемент Додавання.
Відобразиться діалогове вікно Додавання.
Тут можна вибрати додавання записів з однієї таблиці до наявної в поточній базі даних або в іншій базі даних.
Після перетворення запиту потрібно вирішити, чи додавати записи до таблиці в поточній базі даних чи до таблиці в іншій базі даних. Залежно від вибору, виконайте відповідні кроки, описані в одній із двох процедур, наведених нижче:
Додавання записів до таблиці в поточній базі даних
У діалоговому вікні Додавання виберіть параметр Поточна база даних (якщо його ще не вибрано), і виберіть цільову таблицю в полі Ім’я таблиці.
Натисніть кнопку ОК.
Результат залежить від способу створення запиту на вибірку. Наприклад, якщо додано всі поля з вихідної таблиці або запиту, усі поля цільової таблиці відображаються в рядку Додавання до.
або
Якщо до запиту додано окремі поля та імена полів у вихідній і цільовій таблицях збігаються, імена цільових полів автоматично відображаються в рядку Додавання до в запиті.
або
Якщо додано окремі поля та деякі імена у вихідній і цільовій таблицях не збігаються, поля залишаються пустими. У рядку Додавання до можна вибрати цільове поле.
На рисунку відображено, як вибрати клітинку в рядку Додавання до та вибрати цільове поле.
/
Для попереднього перегляду змін перейдіть до подання таблиці. Для цього клацніть правою кнопкою вкладку документа запиту та виберіть пункт Подання таблиці.
або
В області переходів клацніть правою кнопкою миші запит і виберіть пункт Подання таблиці.
Поверніться до подання конструктора та натисніть кнопку Запуск, щоб додати записи.
Скасувати результати запиту на додавання не можна.
Додавання записів до таблиці в іншій базі даних
У діалоговому вікні Додавання виберіть параметр Інша база даних.
У полі Ім’я файлу введіть розташування й ім’я цільової бази даних.
У полі Ім’я таблиці введіть ім’я цільової таблиці та натисніть кнопку ОК.
або
Натисніть кнопку Огляд, знайдіть цільову базу даних у діалоговому вікні Додавання. Натисніть кнопку ОК після вибору цільової бази даних. Діалогове вікно Додавання закривається. У першому діалоговому вікні Додавання в полі Ім’я таблиці введіть ім’я цільової таблиці та натисніть кнопку ОК.
Результат залежить від способу створення запиту на вибірку. Наприклад, якщо додано всі поля з вихідної таблиці або запиту, усі поля цільової таблиці відображаються в рядку Додавання до.
або
Якщо до запиту додано окремі поля та імена полів у вихідній і цільовій таблицях збігаються, імена цільових полів автоматично відображаються в рядку Додавання до в запиті.
або
Якщо додано окремі поля та деякі імена у вихідній і цільовій таблицях не збігаються, поля залишаються пустими. У рядку Додавання до можна вибрати цільове поле.
На рисунку відображено, як вибрати клітинку в рядку Додавання до та вибрати цільове поле.
/
Поверніться до подання конструктора (клацніть правою кнопкою вкладку у верхній області запиту та виберіть пункт Конструктор) і натисніть кнопку Запуск для додавання записів. Після відображення запиту про підтвердження операції натисніть кнопку Так.
Описання виконаної роботи
У цій лабораторній роботі засобами RQBE було створено запити відповідно до вимог завдання. Всі запити будувались на підставі таблиць бази даних, яка була створена у лабораторній роботі №2.
Описання запитів:
Запит на вибір даних з таблиць бази даних без критеріїв пошуку.
Необхідно отримати коротку інформацію про всі товари які занесені в базу даних. Для цього створюємо простий запит на вибір даних. З таблиці Товари вибираємо поля Назв, Опис, Ціна. Результат роботи запиту проілюстровано на рис.1.
Простий запит на вибір даних за критерієм.
Необхідно отримати інформацію про касирів, а саме на яку суму кожен касир продав товару. Для цього ми створюємо простий запит із декількох таблиць за допомогою майстра запитів. Результат робот запиту проілюстровано на рис.2.
Параметричний запит на вибір даних за заданим критерієм із значенням, заданим у вигляді параметра.
Необхідно отримати інформацію про кількість певного товару на складі. Для цього створюємо запит вибір з однієї таблиці Товари. У полі вигляд задаємо критерій відбору інформації у вигляді зовнішнього параметра. Вибираємо поле Кількість з таблиці Товари. Результат роботи запиту проілюстровано на рис.3
Запит на модифікацію значень полів записів за заданим критерієм.
Необхідно зменшити кількість товару на складі на певне число. Для цього створюємо запит на модифікацію. У полі Кількість таблиці Товар задаємо критерій – зовнішній параметр. Він визначає ІН товару. Задаємо формулу, за якою ми за ще одним зовнішнім параметром зменшуємо поле кількість на певне число. Вигляд таблиці Товар до і після роботи запиту подано на рис.4
Запит на видалення записів за критерієм.
Необхідно видалити усі чеки за певний день. Для створюємо запит на видалення з зовнішнім параметром – дата. Усі чеки які оформленні у задану дати будуть видалені. Результат роботи проілюстровано на рис.5
Перехресний запит для відображення залежності значень одного поля таблиці від іншого.
Необхідна інформація про кількості товарів кожної з категорій. Для цього за допомогою майстра запитів будуємо перехресний запит. У результаті роботи запиту отримуємо таблицю у стовпчику якої розміщені можливі значення кількостей, а у рядках – категорії. На перетині рядків і стовпчиків міститься ІН товару. Результат роботи запиту проілюстровано на рис.6
Результати роботи звітів:
Рис. 1
/
Рис. 2
/
Рис. 3
/
Рис. 4
/
/
Рис. 5
/
/
Рис. 6/
Висновок
У цій лабораторній роботі я ознайомився з засобами розроблення запитів RQBE, видами запитів, способами їх виконання та застосування для роботи з реляційними базами даних.