Professional Documents
Culture Documents
лаба 8
лаба 8
Лабораторна робота № 8
Створення запитів
Завдання
1. Запустити базу даних MS Access, створену Вами на попередній лабора-
торній роботі з ім’ям ПрізвищеБД.
2. Створити копію таблиці Посади як локальну таблицю, зберігши струк-
туру та дані. Перейменувати копію таблиці на Сортування й фільтр1 та задати
в ній сортування записів за зростанням окладу.
3. Створити копію таблиці Анкети як локальну таблицю, зберігши струк-
туру та дані. Перейменувати копію таблиці на Сортування й фільтр2 та вста-
новити сортування за двома полями: 1) полем Освіта (за абеткою – від А до Я)
та 2) за віком – поле ДатаНародження (від найстаршого до наймолодшого).
Тобто в разі однакових значень поля Освіта записи мають виводитись за спа-
данням віку працівників.
4. У таблиці Сортування й фільтр1 увімкнути фільтрацію для виведення
посад з окладом понад 4000 грн. Зберегти змінення та закрити таблицю.
5. У таблиці Сортування й фільтр2 задати подвійну фільтрацію для виве-
дення тільки працівників з вищою освітою (фільтр за виділенням), що святку-
ватимуть день народження наприкінці року у четвертому кварталі..
6. У режимі Конструктор створити запит з ім’ям НадбавкиПонад1000 на
відбір усіх даних головної таблиці Надбавки Вашої БД за умови, що значення
певного числового поля не перевищують певного значення, наприклад, понад
1000 грн.
7. У режимі Конструктор створити запит на відбір даних лише чотирьох
полів з таблиці Вашої БД Працівники: одне поле має бути полем дати (поле Да-
таПрийому), друге – текстовим (поле Посада), а третє та четверте поля – будь-
якими на Ваш вибір. Двома умовами для відбору мають бути:
– у полі дати значення належати до певного діапазону значень (наприклад,
ДатаПрийому була здійснена в межах 5-ти останніх років);
– у текстовому полі Посада значення збігаються з двома чи трьома певними
значеннями (наприклад, працівники на посадах "аудитор" або "менеджер").
8. Відкрити ще раз створений у п. 7 запит та переглянути його в режимі
SQL. Перейти до режиму Конструктор та для будь-якого поля встановити в
рядку Сортування параметри сортування: за зростанням або за спаданням. Пе-
рейти до режиму Таблиця, впевнитися у правильності сортування, після чого
перейти в режим SQL та впевнитися в тому, що в запиті було долучено параме-
три сортування. Закрити цей запит.
9. У режимі Конструктор створити запит на відбір даних з двох чи трьох
таблиць. В умові відбору використати шаблон подібності LIKE та перевірку на
порожні клітинки – IS NULL. Наприклад, з таблиць Працівники та Анкети віді-
брати дані про працівників з незаповненими даними про номери телефонів:
2
Теоретичні відомості
1. Сортування даних
Сортування даних відіграє важливу роль у створенні ефективних і простих
у використанні звітів і форм. Наприклад, каталог товарів, в якому товари вказа-
3
Умова Результат
NOT "*т" Находить записи, які не закінчуються літерою "т"
IN("Канада"; "США"; Находить записи, які містять одне зі значень, зазначених
"Китай") у списку
LIKE "Т*" Находить всі записи, які починаються з літери "Т"
LIKE "*ар*" Находить записи, які містять сполучення літер "ар"
LIKE "Григорій Находить записи, які починаються з імені "Григорій" і
Чорн??" з прізвищем з 6 літер, з яких перші 4 літери невідомі, а останні
дві літери – ні (на це вказують знаки питання).
Наприклад, прізвища "Чорний" або "Чорняк"
LIKE "[А-Г]*" Находить у полі з типом даних Короткий текст записи,
які починаються з літер "А-Г"
BETWEEN Date() Повертає всі записи з датою, яка находиться між поточною
AND датою і датою, яка на 3 місяця пізніше поточної
DateAdd ("m"; 3; Date( ))
IS NOT NULL Повертає записи, які містять непорожнє (заповнене) значення
Повертає записи, які містять рядок (тип Короткий текст)
"" нульової довжини. Такі рядки звичайно використовуються, ко-
ли поле обов’язкове для заповнення, але значення
ще невідоме
"" OR IS NULL Повертає записи, які містять порожні (незаповнені) значення
LEN([Країна])>10 Повертає записи із назвами країн певної довжини – понад
10 символів
увімкнені, тобто всі поля виводитимуться на екран після запуску запиту на вико-
нання. Якщо вимкнути прапорець, тоді дані цього поля будуть оброблятися у за-
питі, але на екран виводитися не будуть.
Параметр Критерії дозволяє сформувати умову відбирання даних. Правила
формування критеріїв розглядались у п. 3 цих теоретичних відомостей. Напри-
клад, для відбору працівників з окладом понад 3000 грн. (числове поле) слід за-
дати критерій: >=3000, а для відбору працівників, що отримують премію (збіг
значень у полі ВидДоплати зі значенням "премія") просто вписати таке значен-
ня у рядку Критерії (див. рис. 8.2).
До речі, для наведеного на рис. 8.1 прикладу формування запиту доцільно
встановити більш коректний зв’язок між таблицями без ключового поля. Слід
нагадати, що таблиця Посади має зв’язок з файлом Excel, і по цій причині клю-
чове поле у таблиці не створюється. Зв’язок таблиці Працівник з таблицею По-
сади не показує відношення ОДИН-ДО-БАГАТЬОХ. Щоб запит спрацював ко-
ректно, треба змінити зв’язок, виділивши лінію зв’язку між таблицями і клац-
нувши двічі по ній. Це призведе до відкриття діалогового вікна Параметри
об’єднання, в якому треба увімкнути другу опцію і натиснути кнопку ОК.
Для відбору полів з діапазону від 3-х до 10-ти років тому критерій може
бути таким:
BETWEEN Date() – 365,25*10 AND Date() - 365,25*3
або
BETWEEN DateAdd("yyyy"; -10; Date()) AND DateAdd("yyyy"; -3; Date())
Слід зазначити, що, крім вибраних з різних таблиць полів, у запиті на
рис. 8.2 було сформовано ще два обчислювані поля Доплата та Нараховано, але
специфіку формування таких полів буде розглянуто далі.
При створенні запиту в режимі Конструктор ім'я запиту зазвичай задають
наприкінці його створення, натиснувши у правому верхньому куті . При цьо-
му з'явиться повідомлення з пропозицією зберегти змінення макета запиту, в
якому натиснути кнопку Так, потім у діалоговому вікні присвоївши ім'я запиту
Оклади та доплати. Після цього в області об'єктів БД у розділі Запити з'явить-
ся новий запис , двічі клацнувши по якому буде відкритий
запит у режимі Таблиця з вибіркою даних з трьох таблиць (див. рис. 8.3).
Якщо відкрити цей запит у режимі SQL командою Вигляд / Режим SQL,
запит набуде вигляду:
12
6. Режим SQL
У режимі SQL можна не тільки переглядати вже створені запити, але й
створювати нові "з нуля". Для створення такого запиту треба виконати команду
Створення / Конструктор запитів, відмовитись від додавання таблиць до бла-
нку конструктора запиту, натиснувши кнопку Закрити, і перейти до режиму
SQL командою Вигляд / Режим SQL. У вікні конструювання запиту дописати
після слова SELECT весь текст запиту. Наприклад, для визначення середнього
окладу усіх працівників запит може бути таким:
SELECT Avg (Оклад) AS СереднійОклад FROM Посади;
SQL-запит для визначення кількості працівників у кожному з відділів:
SELECT Відділ, Count(КодПрацівника) AS КількістьПрацівниківУВідділі
FROM Працівники GROUP BY Відділ;
У цьому SQL-запиті для визначення кількості працівників на кожній поса-
ді використовується агрегатна функція Count() та угрупування GROUP BY.
При бажанні, можна перейти у режим SQL і побачити те, як цей запит буде
виглядати у вигляді оператора SELECT.
1
У тексті для параметра неможна використовувати крапку (.) і знак оклику (!), але можна використовувати знак
підстановки (*), якщо частина символів значення невідома.
19