Рекомендуем, 2024

Выбор редакции

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

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

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

Основа для сравненияВнутреннее соединениеВнешнее соединение
основной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 выводит все кортежи обеих таблиц. Внешнее соединение бывает трех типов: левое внешнее соединение, правое внешнее соединение и полное внешнее соединение .

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

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

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

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

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

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

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

Ключевые различия между внутренним и внешним соединением

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

Заключение:

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

Top