Разница между внутренним соединением и внешним соединением в SQL

Автор: Laura McKinney
Дата создания: 2 Апрель 2021
Дата обновления: 12 Май 2024
Anonim
SQL на котиках: Джоины (Joins)
Видео: SQL на котиках: Джоины (Joins)

Содержание


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

  1. Сравнительная таблица
  2. Определение
  3. Ключевые отличия
  4. Заключение

Сравнительная таблица

Основа для сравненияВнутреннее соединениеВнешнее соединение
основнойInner Join выводит только совпадающие кортежи из обеих таблиц.Outer Join отображает все кортежи из обеих таблиц.
База данныхПотенциальный размер базы данных, возвращаемой Inner Join, сравнительно меньше, чем Outer Join.Внешнее соединение возвращает сравнительно большую базу данных.
ТипыНет типов.Левое внешнее соединение,
Правое внешнее соединение,
и полное внешнее соединение.


Определение внутреннего соединения

Внутреннее соединение также называется естественным соединением. Inner Join сравнивает две таблицы и объединяет совпадающий кортеж в обеих таблицах. Он также называется типом соединения по умолчанию, поскольку предложение Join пишется без внутреннего ключевого слова, которое выполняет естественное соединение. Если предложение Join написано без ключевого слова Outer, то также выполняется внутреннее соединение.

Внутреннее соединение можно объяснить на примере. Есть два стола ученический стол и стол отдела. Теперь давайте поймем, что выполняет внутреннее соединение.

ВЫБЕРИТЕ Имя, Сем, Имя_отдела ОТ студента INNER ПРИСОЕДИНЯЙТЕСЬ К ФАКУЛЬТЕТУ ПО Student.Department_ID = Department.ID.


Вы можете видеть, что в результате получаются только те кортежи, где Student.Department_ID = Department.ID. Следовательно, можно сказать, что Inner Join объединяет только совпадающий кортеж из двух таблиц.

Определение внешнего соединения

В отличие от Inner Join, выводятся только те кортежи, которые имеют одинаковые значения атрибутов в обеих сравниваемых таблицах; Outer Join выводит все кортежи обеих таблиц. Внешнее соединение имеет три типа Левое внешнее соединение, Правое внешнее соединение, а также Полное внешнее соединение.

Позвольте нам понять их один за другим. Во-первых, давайте возьмем левое внешнее соединение.

Выберите Имя, Фамилия_Имя из левого внешнего студента. Вступите в отдел ПО.

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

Выберите Имя, Имя_отдела Из Отдела справа Внешнее Присоединитесь к Студенту ВКЛ.

Вы можете видеть, что отображаются все кортежи из таблицы Department.

Выберите Имя, Имя_отдела Из Отдела полного внешнего присоединения студента ON Student.Department_ID = Depoartment.ID.

Вы можете заметить, что все кортежи из обеих таблиц отображаются в результате.

  1. Основное различие между внутренним объединением и внешним соединением состоит в том, что внутреннее объединение сравнивает и объединяет только соответствующие кортежи из таблиц. С другой стороны, Outer Join сравнивает и объединяет все кортежи из обеих сравниваемых таблиц.
  2. Размер базы данных результирующего, полученного из Inner Join, меньше, чем Outer Join.
  3. Существует три типа внешнего соединения: левое внешнее соединение, правое внешнее соединение и полное внешнее соединение. Но у внутреннего Join нет таких типов.

Заключение:

Оба соединения очень полезны. Их использование зависит от требований пользователя.