- •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 із інших додатків
- •Контрольні питання
- •Література
5.3. Додатові відомості про зв’язування таблиць
В результаті зв’язування двох таблиць можуть утворюватись динамічні набори даних.
В кожній із таблиць є ключове поле. Записи в таблицях упорядковуються за значеннями ключового поля. Хоча б одна із зв’язуваних таблиць має первинний ключ. Множину значень ключів позначимо К1 та К2 відповідно для кожної із таблиць, як схематично вказано на Рис 5.3.
Рис. 5.3. Схема зв’язування таблиць
Позначимо ці множини як
К1= {k11, k12 …,k1n}, К2= {k21, k22 …,k2m}
Не завжди К1=К2, тобто необов’язково множини значень ключів співпадають. Ця обставина впливає на спосіб утворення динамічних наборів.
При утворенні динамічних наборів зв’язаних таблиць поточні записи однієї таблиці доповнюються відповідними записами другої таблиці. Нехай поточний запис таблиці1 буде позначено Р. Відповідність записів встановлюється по співпаданню значень ключа (k1і= k2і). Позначимо відповідний запис у іншій таблиці як В.
Якщо К1=К2, то поточний запис динамічного набору утворюється як об’єднання Р U В, або схематично запис динамічного набору можна представити
як показано нижч
Така ситуація описується за допомогою SQL у реченні FROM наступним чином:
FROM таблица_1 INNER JOIN таблица_2 ON таблица_1.поле_1 оператор таблица_2.поле_2,
Якщо К1К2, то говорять про зовнішнє об’єднання. При зовнішньому об’єднанні таблиць уточнюють наступне:
записи якої з таблиць поповнюються відповідними записами зв’язаної таблиці;
як діяти, якщо відсутній відповідний запис у зв’язаній таблиці.
Якщо при формуванні динамічного набору поповнюються записи однієї таблиці (умовимся називати її таблицяР) записами іншої таблиці, то у результуючу таблицю включаються усі записи таблиціР). Такою таблицеюР у різних ситуаціях може бути або таблиця 1 або таблиця 2. Якщо таблицеюР є таблиця 1, то говорять про створення лівого зовнішнього об’єднання, бо у наших позначеннях таблиця 1 розташована зліва і у реченні FROM в аргументах записується першою
FROM таблица_1 LEFT JOIN таблица_2 ON таблица_1.поле_1 оператор таблица_2.поле_2,
Схематично запис, що утворюється при лівому зовнішньому об’єднанні можна вказати, використовуючи введені позначення, розглянувши дві ситуації:
2. Якщо відповідний запис у таблиці2 відсутній, то поточний запис формується як вказано на схемі, що подається нижче:
Якщо таблицеюР є таблиця 2 то говорять про створення правого зовнішнього об’єднання, бо у наших позначеннях таблиця 2 розташована праворуч, а у реченні FROM в аргументах записується другою
FROM таблица_1 RIGHT JOIN таблица_2 ON таблица_1.поле_1 оператор таблица_2.поле_2,
Схематично запис, що утворюється при правому зовнішньому об’єднанні можна вказати, використовуючи введені позначення, розглянувши дві ситуації:
Якщо відповідний запис у зв’язаній таблиці існує, то поточний запис результуючої таблиці формується так, як схематично показано на схемі, наведеній нижче:
Якщо відповідний запис у зв’язаній таблиці - відсутній, то поточний запис результуючої формується так, як схематично показано на схемі, наведеній нижче без заповнення полів, що відповідають зв’язаній таблиці.
Вкажемо аргументи операцій з’єднання у реченні FROM.
Аргумент |
Опиc |
таблица_1, таблица_2 |
Імена таблиць, записи яких належить об’єднати. |
поле_1, поле_2 |
Імена полів. Якщо ці поля не є числовими, то повинні мати однаковий тип даних і вміщувати дані одного типу, однак, поля можуть мати різні імена. |
Оператор |
Любий оператор порівняння: "=," "<," ">," "<=," ">=," або "<>". |
Якщо потрібно включити у результат лише записи, що мають однакові значеннях у полях зв’язку, то використовують операцію INNER JOIN.
Операції LEFT JOIN, RIGHT JOIN можуть вкладатись у операцію INNER JOIN, але не навпаки.
Поля типу МЕМО не об’єднуються.
Поле зв’язку не буде включатись у результуючу таблицю, якщо воно не включено в речення SELECT.
Щоб зв’язати кілька речень ON в JOIN, використовують наступний синтаксис:
SELECT поля
FROM таблица_1 INNER JOIN таблица_2
ON таблица_1.поле_1 оператор таблица_2.поле_1 AND
ON таблица_1.поле_2 оператор таблица_2.поле_2) OR
ON таблица_1.поле_3 оператор таблица_2.поле_3)];
Висновки:
Таким чином, системи управління базами данних Access дозволяють розробити невичерпне число різноманітних запитів необхідних користувачеві.
Кожному запиту на мові QBE відповідає тотожній по результатам SQL-запит , але у зворотньому порядку це незавжди вірно.
SQL-запити забезпечують:
формування джерел даних для полів зі списком;
визначення обчислювальних полів;
фільтрацію даних.