Типы объединений в SQL Server - Топ 5 объединений в SQL Server с примерами

Содержание:

Anonim

Обзор типов соединений в SQL Server

Предложение Join, ключевое слово JOIN объединяет несколько таблиц в один набор результатов. Предложение FROM должно включать все таблицы. Разделяет каждую таблицу запятым предложением WHERE.

Мы можем вставить логическое выражение, которое возвращает true или false, и эти выражения могут ссылаться на столбцы во всех таблицах.

Типы объединений в SQL Server

Существуют разные типы соединений

  • CROSS JOIN
  • ВНУТРЕННЕЕ СОЕДИНЕНИЕ
  • НАРУЖНОЕ СОЕДИНЕНИЕ
  1. ЛЕВОЕ НАРУЖНОЕ СОЕДИНЕНИЕ
  2. ПРАВО НАРУЖНОЕ
  • ПОЛНОЕ НАРУЖНОЕ СОЕДИНЕНИЕ
  • SELF JOIN

Давайте разберемся с каждым из этих соединений подробнее:

1) Перекрестное соединение

  • Это самое простое ПРИСОЕДИНЕНИЕ
  • Возвращает все строки из обеих таблиц
  • Нет предложения ГДЕ
  • Это также наименее полезно
  • Это очень неэффективно
  • Это создает декартово произведение
  • Подразумевается ключевое слово CROSS

пример

Таким образом, все из первой таблицы с каждым фрагментом данных из второй таблицы без каких-либо попыток сопоставления, поэтому вы не хотите этого делать.

Найдите предложение FROM, где у вас есть несколько таблиц, а предложение WHERE отсутствует.

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

Вывод запроса:

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

  • Это наиболее типичное JOIN
  • Это подчеркнуло реляционный характер базы данных
  • Это позволяет сопоставить значение столбца в одной из таблиц со значением столбца в другой из таблиц.
  • Первичный ключ в одной из таблиц и внешний ключ в одной из других таблиц.

пример

Здесь p.person_id является нашим первичным ключом в нашей таблице персон,

email_address_person_id - это наш внешний ключ в таблице адресов электронной почты.

Давайте посмотрим на стол человека

У нас есть эти четыре ряда. А затем все совпадения внутри таблицы адресов электронной почты.

Итак, в конце концов, должны получить три человека, потому что у нас есть человек Шеннон, у которого нет адреса электронной почты

Вывод запроса:

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

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

  • INNER JOIN не работает со значениями NULL
  • OUTER JOIN работает, даже если во второй таблице нет совпадений.
  • NULL столбцы, если нет совпадения во второй таблице
  • FULL OUTER JOIN вернуть все соединенные строки
  • NULL, если нет совпадений ни в одной таблице

а) левое внешнее соединение

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

  • Еще одно связанное с NULL JOIN
  • Все строки с левой стороны будут возвращены
  • NULL для несоответствующей правой таблицы

пример

Вывод запроса:

Вы заметили, что есть одна строка в таблице Person, которая не имеет значений в таблице адресов электронной почты. Так что левое внешнее соединение даст нам.

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

Вывод запроса:

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

  • Напротив LEFT OUTER JOIN
  • Все строки с правой стороны будут возвращены
  • NULL для несоответствующей левой таблицы

пример Вывод запроса:

Мы получаем три результата. Вот наш результат RIGHT OUTER JOIN, где у нас есть строка из таблицы адресов электронной почты, у которой нет соответствующей строки в правой таблице.

4) Полное внешнее соединение

пример

Вывод запроса:

Мы получим объединение результата LEFT OUTER JOIN и RIGHT OUTER JOIN

5) Self Join

  • SELF не является ключевым словом. Именно эта идея, что вы можете создать таблицу на себя
  • Странно, но иногда полезно
  • Нет специального синтаксиса
  • Одна и та же таблица слева и справа от JOIN
  • Полезно, когда таблица содержит иерархические данные

пример

ВЫБРАТЬ *

ОТ заказов

ПРИСОЕДИНЯЙТЕСЬ подписки

ON orders.subscription_id = subscription.subscription_id;

Мы получаем таблицу заказов и таблицу подписок и присоединяемся к таблице, используя SELECT все столбцы.

Чтобы получить результат.

Вывод:

Объединения - это способ, которым мы действительно воплощаем реляционную модель в жизнь. Реляционная модель предполагает разделение данных, их нормализацию по нескольким таблицам, но возможность снова объединить их, когда мы хотим увидеть эти отношения. И различные виды соединений позволяют нам делать это немного по-разному.

Рекомендуемые статьи

Это руководство по типам соединений на сервере SQL. Здесь мы обсудим обзор и типы объединений в SQL с их примерами. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -

  1. Что такое SQL Server?
  2. Карьера в SQL Server
  3. PL SQL Training
  4. Операторы MySQL
  5. 6 лучших типов соединений в MySQL с примерами