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

Что такое объединение таблиц (JOIN) в СУБД?
Присоединяйтесь к СУБД Это бинарная операция, позволяющая объединить результат объединения и выборку в одном операторе. Цель создания условия объединения — объединить данные из двух или более таблиц. Таблицы связаны между собой с помощью первичных ключей. внешние ключи.
Типы присоединения
В СУБД в основном существует два типа объединений:
- Внутренние соединения: тета, естественное, EQUI.
- Внешние соединения: левое, правое, полное
В таблице ниже представлен предварительный просмотр всех типов соединений, после чего каждый из них объясняется на примере.
| Присоединяйся | 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 |
AB
| А ⟕ Б | ||
|---|---|---|
| В | Площадь | Cubo,en |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | – |
Правое внешнее соединение (A ⟖ B)
Правое внешнее соединение Возвращает все столбцы из таблицы справа, даже если в таблице слева не найдено соответствующих строк. Если совпадений слева не найдено, возвращается значение NULL. Правое внешнее соединение (right outer join) является противоположностью левого соединения (left join).
AB
| А ⟖ Б | ||
|---|---|---|
| В | Cubo,en | Площадь |
| 2 | 8 | 4 |
| 3 | 18 | 9 |
| 5 | 75 | – |
Полное внешнее соединение (A ⟗ B)
В Полное внешнее соединение, все кортежи из обоих отношений включаются в результат независимо от условия совпадения.
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
AB
| А ⟗ Б | ||
|---|---|---|
| В | Площадь | Cubo,en |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | – |
| 5 | – | 75 |


