Що таке Приєднання в СУБД?
Приєднання в СУБД - це двійкова операція, яка дозволяє поєднати продукт приєднання та виділення в одному єдиному твердженні. Мета створення умови приєднання полягає в тому, що це допомагає поєднувати дані з двох або більше таблиць СУБД. Таблиці в СУБД пов'язані з використанням первинного та зовнішнього ключів.
У цьому підручнику СУБД ви дізнаєтесь:
- Типи приєднання
- Внутрішнє з'єднання
- Тета Приєднуйся
- Приєднання до EQUI:
- Природне приєднання (⋈)
- Зовнішнє приєднання
- Ліве зовнішнє приєднання (A B)
- Праве зовнішнє з'єднання (A B)
- Повне зовнішнє приєднання (A B)
Типи приєднання
В СУБД в основному є два типи об’єднань:
- Внутрішні приєднання: Theta, Natural, EQUI
- Зовнішнє з'єднання: ліве, праве, повне
Давайте розглянемо їх докладно:
Внутрішнє з'єднання
INNER JOIN використовується для повернення рядків з обох таблиць, які задовольняють заданій умові. Це найбільш широко використовувана операція об’єднання і може розглядатися як тип об’єднання за замовчуванням
Внутрішнє приєднання або еквіод'єднання - це об'єднання на основі порівняння, яке використовує порівняння рівності в предикаті об'єднання. Однак якщо ви використовуєте інші оператори порівняння, такі як ">", це не можна назвати equijoin.
Внутрішнє приєднання додатково поділено на три підтипи:
- Тета приєднуйтесь
- Природне приєднання
- Приєднання до EQUI
Тета Приєднуйся
THETA JOIN дозволяє об’єднати дві таблиці на основі умови, представленої тетою. Theta приєднується до роботи для всіх операторів порівняння. Він позначається символом θ . Загальний випадок операції JOIN називається об'єднанням Theta.
Синтаксис:
A ⋈θ B
Theta join може використовувати будь-які умови в критеріях відбору.
Розглянемо наступні таблиці.
Таблиця А | Таблиця В | |||
стовпець 1 | графа 2 | стовпець 1 | графа 2 | |
1 | 1 | 1 | 1 | |
1 | 2 | 1 | 3 |
Наприклад:
A ⋈ A.column 2 > B.column 2 (B)
A ⋈ A. стовпець 2> B. стовпець 2 (B) | |
стовпець 1 | графа 2 |
1 | 2 |
Приєднуйтесь до EQUI
EQUI JOIN виконується, коли для об'єднання Theta використовується лише умова еквівалентності. Приєднання EQUI - це найскладніша операція для ефективної реалізації в СУБД, і одна з причин, чому СУБД мають суттєві проблеми з продуктивністю.
Наприклад:
A ⋈ A.column 2 = B.column 2 (B)
A ⋈ A. стовпець 2 = B. стовпець 2 (B) | |
стовпець 1 | графа 2 |
1 | 1 |
Природне приєднання (⋈)
NATURAL JOIN не використовує жодного оператора порівняння. У цьому типі об’єднання атрибути повинні мати однакові ім’я та домен. У програмі Natural Join між двома відносинами повинен бути принаймні один загальний атрибут.
Він виконує виділення, утворюючи рівність тих атрибутів, які відображаються в обох відносинах, і усуває повторювані атрибути.
Приклад:
Розглянемо наступні дві таблиці
C. | |
Кількість | Площа |
2 | 4 |
3 | 9 |
D | |
Кількість | Куб |
2 | 8 |
3 | 18 |
C ⋈ D
C ⋈ D | ||
Кількість | Площа | Куб |
2 | 4 | 8 |
3 | 9 | 18 |
Зовнішнє приєднання
OUTER JOIN не потрібно кожен запис в два об'єднанні таблиць , щоб мати відповідний запис. При цьому типі об’єднання таблиця зберігає кожен запис, навіть якщо жодного іншого відповідного запису не існує.
Три типи зовнішніх об’єднань:
- Зліва Зовнішнє приєднання
- Правильне зовнішнє приєднання
- Повне Зовнішнє Приєднання
Ліве зовнішнє приєднання (A B)
LEFT JOIN повертає всі рядки з таблиці ліворуч, навіть якщо в таблиці справа не знайдено відповідних рядків. Коли в таблиці праворуч не знайдено відповідного запису, повертається NULL.
Розгляньте наступні 2 таблиці
A | |
Кількість | Площа |
2 | 4 |
3 | 9 |
4 | 16 |
B | |
Кількість | Куб |
2 | 8 |
3 | 18 |
5 | 75 |
A B
A ⋈ B | ||
Кількість | Площа | Куб |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
Праве зовнішнє з'єднання (A B)
RIGHT JOIN повертає всі стовпці з таблиці праворуч, навіть якщо в таблиці зліва не знайдено відповідних рядків. Якщо в таблиці зліва не знайдено збігів, повертається NULL. ПРАВО зовнішнє JOIN є протилежністю LEFT JOIN
У нашому прикладі припустимо, що вам потрібно отримати імена учасників та орендовані ними фільми. Тепер у нас є новий учасник, який ще не взяв у прокат жодного фільму.
A B
A ⋈ B | ||
Кількість | Куб | Площа |
2 | 8 | 4 |
3 | 18 | 9 |
5 | 75 | - |
Повне зовнішнє приєднання (A B)
У ПОВНІЙ ЗОВНІШНІЙ ПРИЄДНАННІ всі результати з обох відношень включаються в результат, незалежно від умови відповідності.
Приклад:
A B
A ⋈ B | ||
Кількість | Площа | Куб |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
5 | - | 75 |
Короткий зміст:
- В СУБД в основному є два типи об’єднань 1) Внутрішнє приєднання 2) Зовнішнє приєднання
- Внутрішнє об’єднання є широко використовуваною операцією об’єднання і може розглядатися як тип об’єднання за замовчуванням.
- Внутрішнє з'єднання додатково поділяється на три підтипи: 1) Тета-з'єднання 2) Природне з'єднання 3) Приєднання EQUI
- Theta Join дозволяє об’єднати дві таблиці на основі умови, представленої theta
- Коли тета-об’єднання використовує лише умову еквівалентності, воно стає екві-об’єднанням.
- Натуральне з'єднання не використовує жодного оператора порівняння.
- Зовнішнє об’єднання не вимагає, щоб кожен запис у двох таблицях об’єднання мав відповідний запис.
- Зовнішнє приєднання також поділяється на три підтипи: 1) ліве зовнішнє приєднання 2) праве зовнішнє приєднання 3) повне зовнішнє приєднання
- LEFT Outer Join повертає всі рядки з таблиці ліворуч, навіть якщо в таблиці праворуч не знайдено відповідних рядків.
- ПРАВИЛЬНЕ зовнішнє приєднання повертає всі стовпці з таблиці праворуч, навіть якщо в таблиці зліва не знайдено відповідних рядків.
- При повному зовнішньому з'єднанні всі результати з обох відносин включаються в результат, незалежно від умови відповідності.