- •1. Короткі відомості про моделі даних
- •1.1. Реляційна алгебра
- •1.2. Основні поняття та нормалізація відношень реляційної бази даних
- •Сутність та особливості мови запитів sql
- •2.1. Структурована мова запитів
- •2.2. Особливості використання мовиSql
- •Оператори та синтаксис мови sql
- •Синтаксис sql
- •3.2.Ключові слова.
- •3.3. Створення sql-інструкцій (на стадії ознайомлення)
- •3.4. Групи sql – інструкцій
- •3.5. Методи виконання sql-операторів
- •4. Принципи застосування мови sql в системі управління базами данних Access
- •4.1. Використання інструкцій sql у об’єктах Access
- •4.1.2. Створення запитів sql
- •5. Використання sql для розробки запитів в Access
- •5.1. Звичайні вибірки sql та вибірки з умовою для однотабличних запитів
- •Багатотабличні запити
- •5.2.2. Запити з операціями з’єднання Таблиць
- •5.3. Додатові відомості про зв’язування таблиць
- •Вибранні питання роботи з операторами sql, що змінюють структуру бази даних
- •6.1. Створення таблиці
- •Типи даних
- •6.2. Спеціальні запити sql об’єднання
- •6.3. Короткі відомости про використання Ассеss як сервераDde
- •7. Лабораторні роботи
- •7.1.Лабораторна робота №1 Тема «Використання інструкцій sql при розробці об’єктів в системах управління базами данних ассess
- •Лабораторне завдання:
- •7.2. Лабораторна робота № 2
- •Лабораторне завдання №2
- •Хід виконання роботи:
- •7.3. Лабораторна робота № 3 Тема: Використання мови sql для розробки параметричних запитів та різних варіантів простих вибірок з фільтрацією і сортуванням.
- •Лабораторне завдання №3
- •7.4. Лабораторна робота № 4 Тема: Використання мови sql для розробки запитів на пошук відсутніх даних про об’єкти предметної області та вибірки за зразком
- •Лабораторне завдання №4
- •7.5. Лабораторна робота № 5 Тема: Запити з агрегованими функціями
- •Лабораторне завдання №5
- •Індивідуальні завдання
- •7.6. Лабораторна робота № 6 Тема: Використання мови sql для розробки багатотабличних запитів
- •Лабораторне завдання №6
- •7.7. Лабораторна робота № 7 Тема: Використання мови sql для створення структури нової таблицї бази даних
- •Лабораторне завдання №7
- •8. Питання до контролю
- •Додаток а. Приклад реляційної моделі даних
- •Додаток б. Послідовні нормальні форми та вимоги до них
- •Додаток в.Приклади використання інструкцій sql для організаціїDde із інших додатків
- •Контрольні питання
- •Література
6.2. Спеціальні запити sql об’єднання
Запити на об’єднання дозволяють вводити в одне поле таблиці дані з відповідних полів двох або кількох таблиць або запитів. При виконанні запиту на об’єднання повертаються записи з відповідних полів усіх включених у запит таблиць або запитів.
Вкажемо послідовність дій для виконання запиту на об’єднання:
1 У вікні бази даних виберіть вкладку Запити і натисніть кнопку Создать.
2 У діалоговому вікні Новый запрос виберіть у списку пункт Конструктор і натисніть кнопку OK.
3 Не добавляючи таблиць натисніть кнопку Закрыть у діалоговому вікні Добавление таблиць.
4 У меню Запрос виберіть команду Запрос SQL і підкоманду Объединение.
5 Введіть інструкції SQL SELECT.
6 У реченні ORDER BY при необхідності сортування потрібно вказати поле, по якому проводиться сортування. Зазначене поле має бути вказано в першій інструкції SELECT.
7 Для перегляду результатів запиту натисніть кнопку Вид на панелі інструментів.
Розглянемо комбінування даних із двох або кількох таблиць. Інструкції SQL SELECT комбінуються за допомогою операції UNION, якщо не потрібно повертати записи, що повертаються, або за допомогою операції UNION ALL для вибору усіх записів, у тому числі і тих, що повторюються.
У якості ілюстрації наведемо класичний приклад об’єднання полів “Назва” та “Місто” із таблиць “Постачальники” та “Клієнти”, якщо поле “Країна “ має значення “Україна”.
SELECT [Назва],[Місто]
FROM [Постачальники]
WHERE Країна =”Україна”
UNION SELECT [Назва],[Місто]
FROM [Клієнти]
WHERE Страна =”Україна”;
Результатом виконання вказаної операції буде перелік постачальників та клієнтів з України.
Можна вказати синтаксис операції створення запиту на об’єднання, який об’єднує результати кількох незалежних запитів або таблиць.
Синтаксис операції UNION
[TABLE] запрос_1 UNION [ALL] [TABLE] запрос_2 [UNION [ALL] [TABLE] запрос_n [ ... ]]
Аргументи запрос_1…запрос_n операції UNION являють собою або інструкції SELECT, ім’я збереженого запиту або ім’я збереженої таблиці, перед яким стоїть зарезервоване слово TABLE.
В одній операції UNION можна об’єднати результати кількох запитів, таблиць та інструкцій SELECT. Наприклад, можна об’єднати існуючу таблицю "Рахунки" та інструкцію SELECT:
TABLE [Рахунки] UNION ALL
SELECT *
FROM Замовники
WHERE СумаЗамовлення > 1100;
По замовчуванню записи, що повторюються, не повертаються при використанні операції UNION, проте, можна добавити предикат ALL, щоб гарантувати повернення усіх записів. Окрім того, такі записи виконуються більш швидко.
Усі запити, включені в операцію UNION, повинні відбирати однакове число полів; при цьому типи даних та розміри полів не обов’язково повинні співпадати.
В кожному аргументі запит допускає використання речення GROUP BY
або HAVING для групування отримуваних даних.
В кінці останнього аргумента можна включити речення ORDER BY, щоб відсортувати дані, що повертаються.
SELECT [Назва],[Місто]
FROM [Постачальники]
WHERE Країна =”Україна”
UNNION SELECT [Назва],[Місто]
FROM [Клієнти]
WHERE Страна =”Україна”
ORDER BY Місто;
При перетворенні запиту на об’єднання в запит іншого типу, наприклад, в запит на вибірку, введена інструкція SQL буде втрачена.
В запитах на об’єднання іменами стовпчиків стають імена полів першої таблиці або з першої інструкції SELECT. Для перейменування полів в результуючій таблиці слід використати речення AS.
Переіменування полів у запиті на об’єднання. Наприклад, у наступному запиті на об’єднання поле «Назва» одержує ім’я «Постачальник/Клієнт»:при виведенні результатів:
SELECT Назва AS [Постачальник/Клієнт], Місто
FROM Постачальник
UNION SELECT Назва AS [Постачальник/Клієнт], Місто
FROM Клієнт;
Виведення записів, що повторюються, у запитах на об’єднання. Наприклад, у наступному запиті на об’єднання інструкція UNION ALL забезпечує повернення усіх записів, у тому числі тих, що повторюються:
SELECT Назва, Місто
FROM Постачальники
UNION ALL SELECT Назва, Місто
FROM Клієнти;
Зазначимо, що усі інструкції SELECT мають повертати однаково число полів у тому ж порядку. Відповідні поля повинні мати сумісні типи даних, за виключенням: допускаються об’єднання в одному полі значень полів типів «Числовой» і «Текстовый».