Присъединявания към СУБД: THETA, Inner, Outer, Equi. Видове присъединявания

⚡ Умно обобщение

Съединението (join) в СУБД (системи за управление на бази данни) е двоична операция, която комбинира редове от две или повече таблици, използвайки техните първични и външни ключове. Съединенията се разделят на вътрешни съединения, които връщат само съвпадащи редове, и външни съединения, които запазват несъвпадащите редове и запълват празнините с null.

  • 🔗 Основна цел: Съединението обединява свързани таблици в един резултатен набор въз основа на условие за съединение.
  • 🎯 Вътрешно присъединяване: Връща само редове, които отговарят на условието и в двете таблици; типът съединение по подразбиране.
  • 📐 Тета и EQUI: Тета съединението използва произволен оператор за сравнение; EQUI съединението използва само равенство.
  • 🔄 Естествено присъединяване: Съвпада с идентично именувани атрибути и премахва дублиращата се колона.
  • ⬅️ Ляво външно присъединяване: Запазва всеки ред от лявата таблица, като запълва с null, където дясната няма съвпадение.
  • ➡️ Дясно външно съединение: Запазва всеки ред от дясната таблица, като запълва с null, където лявата няма съвпадение.
  • 🌐 Пълно външно съединение: Запазва всички редове от двете таблици, независимо от съвпадението.

Присъединява се в СУБД Ляво Дясно

Какво е Join в СУБД?

Присъединете се към СУБД е двоична операция, която ви позволява да комбинирате произведение на съединение и селекция в едно изявление. Целта на създаването на условие за съединение е да се комбинират данните от две или повече таблици. Таблиците се свързват с помощта на техните първични ключове и чужди ключове.

Видове присъединяване

В СУБД има основно два типа съединения:

  1. Вътрешни съединения: Theta, Natural, EQUI
  2. Външни съединения: Ляво, Дясно, Пълно

Таблицата по-долу показва предварителен преглед на всички типове съединения, преди всеки от тях да бъде обяснен с пример.

Регистрация Връщане Несъответстващи редове
Вътрешна (Тета / EQUI / Естествена) Редове, съответстващи на условието и в двете таблици Окачен
Ляв външен Всички леви редове плюс съвпадения Запазено отляво, нула отдясно
Десен външен Всички правилни редове плюс съвпадения Запазено отдясно, нула отляво
Пълен външен Всички редове от двете таблици Пазено и от двете, null където липсва

Вътрешно присъединяване

Вътрешно присъединяване се използва за връщане на редове от двете таблици, които отговарят на даденото условие. Това е най-широко използваната операция за съединение и може да се счита за тип съединение по подразбиране.

Вътрешното съединение, или екви-съединение, е съединение, базирано на сравнение, което използва сравнения за равенство в предиката за съединение. Ако обаче използвате други оператори за сравнение, като „>“, то не може да се нарече екви-съединение. Вътрешното съединение се разделя допълнително на три подтипа:

  • Тета присъединяване
  • Естествено присъединяване
  • Присъединете се към EQUI

Theta Присъединете се

Theta Присъединете се позволява ви да обедините две таблици въз основа на условието, представено от theta. Theta обединява работата за всички оператори за сравнение. Означава се със символа θОбщият случай на операция JOIN се нарича тета съединение.

Синтаксис:

A ⋈θ B

Тета съединението може да използва всякакви условия в критериите за избор.

Разгледайте следните таблици.

Таблица А Таблица 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 съединението е най-трудната операция за ефективно изпълнение в RDBMSи това е една от причините, поради които RDBMS може да има проблеми с производителността.

Например:

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 съединението назовава условието изрично и запазва и двете колони.

Да. Като се има предвид схемата и въпросът, изкуственият интелект може да избере типа на съединението и ключовете, например ляво съединение, за да не допусне клиентите до поръчки. Потвърдете резултата, тъй като грешното съединение променя броя на редовете.

Да. Изкуственият интелект може да забележи, че ключът за съединение не е уникален от едната страна, което води до експлозия от много към много, и да предложи добавяне на условие или първо агрегиране, така че всяко съвпадение да се брои веднъж.

Обобщете тази публикация с: