Типи з'єднань СУБД: THETA, Inner, Outer, Equi

⚡ Розумний підсумок

Об'єднання в СУБД – це двійкова операція, яка об'єднує рядки з двох або більше таблиць, використовуючи їх первинні та зовнішні ключі. Об'єднання поділяються на внутрішні об'єднання, які повертають лише співпадаючі рядки, та зовнішні об'єднання, які зберігають неспівпадаючі рядки та заповнюють пробіли значенням null.

  • 🔗 Основна мета: Об'єднання об'єднує пов'язані таблиці в один результуючий набір на основі умови об'єднання.
  • 🎯 Внутрішнє з'єднання: Повертає лише рядки, які задовольняють умову в обох таблицях; тип об'єднання за замовчуванням.
  • 📐 Тета та EQUI: Тета-з'єднання використовує будь-який оператор порівняння; з'єднання EQUI використовує лише рівність.
  • 🔄 Природне приєднання: Зіставляє атрибути з ідентичними назвами та видаляє дублікат стовпця.
  • ⬅️ Ліве зовнішнє з’єднання: Зберігає кожен рядок з лівої таблиці, заповнюючи значенням null там, де правий не має збігів.
  • ➡️ Праве зовнішнє з'єднання: Зберігає кожен рядок з правої таблиці, заповнюючи значенням null там, де лівий не має збігів.
  • 🌐 Повне зовнішнє з'єднання: Зберігає всі рядки з обох таблиць незалежно від збігу.

Об'єднання в СУБД Ліворуч Праворуч

Що таке об'єднання (JOIN) у СУБД?

Приєднатися до СУБД — це бінарна операція, яка дозволяє об’єднати добуток об’єднання та вибірку в одному операторі. Метою створення умови об’єднання є об’єднання даних з двох або більше таблиць. Таблиці пов’язуються за допомогою їхніх первинних ключів та іноземні ключі.

Типи приєднання

У СУБД в основному існує два типи об’єднань:

  1. Внутрішні з'єднання: Theta, Natural, EQUI
  2. Зовнішні з'єднання: ліве, праве, повне

У таблиці нижче наведено попередній перегляд усіх типів об'єднань, перш ніж кожен з них буде пояснено на прикладі.

Приєднатися Повернення Незбігні рядки
Внутрішня (Тета / EQUI / Натуральна) Рядки, що відповідають умові в обох таблицях Випало
Лівий зовнішній Усі ліві рядки плюс збіги Збережено зліва, нуль справа
Правий зовнішній Всі правильні ряди плюс сірники Збережено справа, нуль зліва
Повний зовнішній Усі рядки з обох таблиць Збережено від обох, значення null там, де відсутнє

Внутрішнє з'єднання

Внутрішнє з'єднання використовується для повернення рядків з обох таблиць, які задовольняють задану умову. Це найпоширеніша операція об'єднання, яку можна вважати типом об'єднання за замовчуванням.

Внутрішнє з'єднання, або еквівалентне з'єднання, — це з'єднання на основі порівняння, яке використовує порівняння рівності в предикаті з'єднання. Однак, якщо ви використовуєте інші оператори порівняння, такі як «>», його не можна назвати еквівалентним з'єднанням. Внутрішнє з'єднання також поділяється на три підтипи:

  • Тета-приєднання
  • Природне приєднання
  • Приєднатися до EQUI

Тета приєднатися

Тета приєднатися дозволяє об'єднати дві таблиці на основі умови, представленої тетою. Тета об'єднує роботу для всіх операторів порівняння. Це позначається символом θЗагальний випадок операції JOIN називається тета-з'єднанням.

Синтаксис:

A ⋈θ B

Тета-з'єднання може використовувати будь-які умови в критеріях відбору.

Розгляньте наступні таблиці.

Таблиця A Таблиця B
колонка 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 Приєднуйтесь виконується, коли тета-з'єднання використовує лише умову еквівалентності. З'єднання EQUI є найскладнішою операцією для ефективної реалізації в СУБД, і це одна з причин, чому СУБД можуть мати проблеми з продуктивністю.

Наприклад:

A ⋈ A.column 2 = B.column 2 (B)
A ⋈ A.стовпець 2 = B.стовпець 2 (B)
колонка 1 колонка 2
1 1

Природне з'єднання (⋈)

Природне приєднання не використовує жодного оператора порівняння. У цьому типі об'єднання атрибути повинні мати однакове ім'я та домен. У природному об'єднанні повинен бути принаймні один спільний атрибут між двома відношеннями.

Він виконує вибір, утворюючи рівність для атрибутів, що з'являються в обох відношеннях, та видаляє дублікати атрибутів.

приклад: розгляньте наступні дві таблиці.

C
В Площа
2 4
3 9
D
В Куб
2 8
3 18
C ⋈ D
C ⋈ D
В Площа Куб
2 4 8
3 9 18

Зовнішнє приєднання

An Зовнішнє приєднання не вимагає, щоб кожен запис у двох об'єднаних таблицях мав відповідний запис. У цьому типі об'єднання таблиця зберігає кожен запис, навіть якщо немає іншого відповідного запису. Три типи зовнішнього об'єднання:

  • Зліва Зовнішнє приєднання
  • Правильне зовнішнє приєднання
  • Повне Зовнішнє Приєднання

Ліве зовнішнє з’єднання (A ⟕ B)

Зліва Зовнішнє приєднання повертає всі рядки з таблиці ліворуч, навіть якщо в таблиці праворуч не знайдено відповідних рядків. Якщо праворуч не знайдено відповідних записів, повертається значення null.

Зліва Зовнішнє приєднання

Розгляньте наступні дві таблиці.

A
В Площа
2 4
3 9
4 16
B
В Куб
2 8
3 18
5 75
A Left Outer Join B
А ⟕ Б
В Площа Куб
2 4 8
3 9 18
4 16 -

Праве зовнішнє з'єднання (A ⟖ B)

Правильне зовнішнє приєднання повертає всі стовпці з таблиці праворуч, навіть якщо в таблиці ліворуч не знайдено відповідних рядків. Якщо ліворуч не знайдено збігів, повертається значення null. Праве зовнішнє об'єднання є протилежністю лівого об'єднання.

Правильне зовнішнє приєднання

A Right Outer Join B
А ⟖ Б
В Куб Площа
2 8 4
3 18 9
5 75 -

Повне зовнішнє з'єднання (A ⟗ B)

В Повне Зовнішнє Приєднання, усі кортежі з обох відносин включаються в результат, незалежно від умови відповідності.

приклад:

A Full Outer Join B
А ⟗ Б
В Площа Куб
2 4 8
3 9 18
4 16 -
5 - 75

Поширені запитання

Внутрішнє об'єднання повертає лише рядки, які збігаються в обох таблицях. Зовнішнє об'єднання також зберігає незбігані рядки з однієї або обох таблиць, заповнюючи відсутню частину значенням null.

Тета-з'єднання може використовувати будь-який оператор порівняння, наприклад, «більше ніж» або «менше ніж». EQUI-з'єднання — це тета-з'єднання, обмежене оператором рівності, тому воно відповідає лише рівним значенням.

Обидва збігаються за рівністю, але природне об'єднання автоматично збігається з ідентичними назвами стовпців та видаляє дублікат стовпця. Об'єднання EQUI явно називає умову та зберігає обидва стовпці.

Так. Враховуючи схему та запитання, ШІ може вибрати тип об'єднання та ключі, наприклад, ліве об'єднання, щоб клієнти не мали замовлень. Підтвердіть результат, оскільки неправильне об'єднання змінює кількість рядків.

Так. Штучний інтелект може помітити, що ключ з'єднання не є унікальним з одного боку, що призводить до вибуху "багато до багатьох", і запропонувати спочатку додати умову або агрегувати, щоб кожен збіг враховувався один раз.

Підсумуйте цей пост за допомогою: