Типы соединений в СУБД: THETA, внутреннее, внешнее, равное.

⚡ Умное резюме

Операция объединения (JOIN) в СУБД — это бинарная операция, которая объединяет строки из двух или более таблиц, используя их первичные и внешние ключи. Объединения делятся на внутренние объединения (inner join), которые возвращают только совпадающие строки, и внешние объединения (outer join), которые сохраняют несовпадающие строки и заполняют пробелы значениями NULL.

  • 🔗 Основная цель: Операция объединения (join) сводит связанные таблицы в единый результирующий набор на основе условия объединения.
  • 🎯 Внутреннее соединение: Возвращает только те строки, которые удовлетворяют условию в обеих таблицах; тип соединения по умолчанию.
  • 📐 Тета и EQUI: В операции объединения по тета-методу используется любой оператор сравнения; в операции объединения по EQUI-методу используется только равенство.
  • 🔄 Естественное соединение: Выполняет поиск по атрибутам с одинаковыми именами и удаляет повторяющийся столбец.
  • ⬅️ Левое внешнее соединение: Сохраняет все строки из левой таблицы, заполняя пустыми значениями те строки, в которых в правой таблице нет соответствия.
  • ➡️ Правое внешнее соединение: Сохраняет все строки из правой таблицы, заполняя пустыми значениями те строки, в которых нет соответствия в левой таблице.
  • 🌐 Полное внешнее присоединение: Сохраняет все строки из обеих таблиц независимо от совпадения.

Объединения в СУБД: левое, правое.

Что такое объединение таблиц (JOIN) в СУБД?

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

Типы присоединения

В СУБД в основном существует два типа объединений:

  1. Внутренние соединения: тета, естественное, EQUI.
  2. Внешние соединения: левое, правое, полное

В таблице ниже представлен предварительный просмотр всех типов соединений, после чего каждый из них объясняется на примере.

Присоединяйся Returns Несоответствующие строки
Внутренний (Тета / EQUI / Естественный) Строки, соответствующие условию в обеих таблицах. Добыча
Левый внешний Все левые ряды плюс совпадения Слева — без изменений, справа — пусто.
Правый внешний Все правые ряды плюс матчи Сохранено справа, пусто слева.
Полный внешний Все строки из обеих таблиц Сохранено из обоих источников, пустое значение там, где отсутствует.

Внутреннее соединение

Внутреннее соединение Эта операция используется для возврата строк из обеих таблиц, удовлетворяющих заданному условию. Это наиболее часто используемая операция объединения, и её можно считать типом объединения по умолчанию.

Внутреннее соединение, или эквисоединение, — это соединение на основе компараторов, использующее сравнение на равенство в предикате соединения. Однако, если используются другие операторы сравнения, такие как «>», его нельзя назвать эквисоединением. Внутреннее соединение подразделяется на три подтипа:

  • Тета присоединиться
  • Естественное соединение
  • Присоединение к 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 join) — наиболее сложная операция для эффективной реализации. 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
В Cubo,en
2 8
3 18
C ⋈ D
С ⋈ Д
В Площадь Cubo,en
2 4 8
3 9 18

Внешнее соединение

An Внешнее соединение Для этого не требуется, чтобы каждая запись в двух объединенных таблицах имела соответствующую запись. При таком типе объединения таблица сохраняет каждую запись, даже если другой соответствующей записи не существует. Существует три типа внешнего объединения:

  • Левое внешнее соединение
  • Правое внешнее соединение
  • Полное внешнее соединение

Левое внешнее соединение (A ⟕ B)

Левое внешнее соединение Возвращает все строки из таблицы слева, даже если в таблице справа не найдено соответствующих строк. Если соответствующая запись не найдена справа, возвращается значение null.

Левое внешнее соединение

Рассмотрим следующие две таблицы.

A
В Площадь
2 4
3 9
4 16
B
В Cubo,en
2 8
3 18
5 75
A Left Outer Join B
А ⟕ Б
В Площадь Cubo,en
2 4 8
3 9 18
4 16

Правое внешнее соединение (A ⟖ B)

Правое внешнее соединение Возвращает все столбцы из таблицы справа, даже если в таблице слева не найдено соответствующих строк. Если совпадений слева не найдено, возвращается значение NULL. Правое внешнее соединение (right outer join) является противоположностью левого соединения (left join).

Правое внешнее соединение

A Right Outer Join B
А ⟖ Б
В Cubo,en Площадь
2 8 4
3 18 9
5 75

Полное внешнее соединение (A ⟗ B)

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

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

A Full Outer Join B
А ⟗ Б
В Площадь Cubo,en
2 4 8
3 9 18
4 16
5 75

Часто задаваемые вопросы (FAQ)

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

В операции тета-соединения можно использовать любой оператор сравнения, например, «больше» или «меньше». Операция EQUI-соединения — это тета-соединение, ограниченное оператором равенства, поэтому оно сопоставляет только равные значения.

Оба варианта соответствуют условию равенства, но естественное соединение автоматически соответствует столбцам с одинаковыми именами и удаляет дублирующийся столбец. Соединение EQUI явно указывает условие и сохраняет оба столбца.

Да. Учитывая схему и вопрос, ИИ может выбрать тип соединения и ключи, например, левое соединение, чтобы сохранить клиентов без заказов. Подтвердите результат, поскольку неправильное соединение изменяет количество строк.

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

Подведем итог этой публикации следующим образом: