Видове присъединения в SQL Server - Топ 5 се присъединява в SQL Server с примери

Съдържание:

Anonim

Преглед на видовете присъединения в SQL Server

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

Можем да вмъкнем булевия израз, който връща вярно или невярно, и тези изрази могат да се отнасят към колони във всички таблици.

Видове присъединения в SQL Server

Има различни видове Съединения

  • КРЪСТО ПРИЛОЖЕТЕ
  • ВЪТРЕШНО ПРИЛОЖЕТЕ
  • ВЪНШНО ПРИЛОЖЕНИЕ
  1. НАЛЯВО ВЪЗСТАНОВЕТЕ
  2. ПРАВО ВЪНШЕН ПРИЛОЖЕТЕ
  • ПЪЛНО ВЪНШНО ПРИЛОЖЕНИЕ
  • САМО ПРИСЪЕДИНЕТЕ

Нека разберем подробно всяка от тези присъединения: -

1) Кръстосана връзка

  • Това е най-простият ПРИЛОЖЕНИЕ
  • Връща всички редове от двете таблици
  • Клауза НЕ КЪДЕ
  • Това е и най-малко полезно
  • Много е неефективно
  • Той създава декартови продукти
  • CROSS подразбираща се дума

пример

Така че всички от първата таблица с всякакви данни от втората таблица без никакъв опит за съвпадение, така че това е нещото, което не искате да правите.

Потърсете клауза FROM, където имате няколко таблици и няма клауза WHERE.

2) Вътрешно присъединяване

Изход на заявка:

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

  • Това е най-типичното ПРИЛОЖЕНИЕ
  • Това подчерта релационния характер на базата данни
  • Позволява ни да съпоставим стойността на колоната в една от таблиците със стойността на колоната в друга една от таблиците.
  • Основният ключ в една от таблиците и чужд ключ в една от другите таблици.

пример

Тук p.person_id е основният ни ключ в нашата таблица с хора,

email_address_person_id е нашият чужд ключ в таблицата с имейл адреси.

Нека да разгледаме масата на човека

Имаме тези четири реда. И след това всички съвпадения вътре в таблицата с имейл адреси.

Така че в крайна сметка трябва да получат трима души, защото имаме човек Шанън, който няма имейл адрес

Изход на заявка:

Така получаваме данните само там, където има съвпадение между двете колони във всяка от таблиците

3) Външно присъединяване

  • ВЪТРЕШНИЯ ПРИЛОЖЕНИЕ не се занимава с NULL стойности
  • OUTER JOIN работи дори когато няма съвпадение във втората таблица.
  • NULL колони, ако няма съвпадение във втората таблица
  • ПЪЛНО ВЪНШНО ПРИЛОЖЕНИЕ върнете всички присъединени редове
  • NULL, когато няма съвпадение в нито една таблица

а) ляво външно присъединяване

Изход на заявка: Вие сте първоначални, както и последните редове имат координиращи стойности, свързани с C2. Централните редове обикновено не се срещат. Последният краен резултат би могъл да запази всички редове от първата таблица, но всъщност ще остави неизпълнения ред през втората таблица.

  • Друга, свързана с NULL ПРИЛОЖЕНИЕ
  • Всички редове от лявата страна ще бъдат върнати
  • NULL за несъответстваща дясна странична маса

пример

Изход на заявка:

Забелязвате, че в таблицата с лица има един ред, който няма стойности в таблицата с имейл адреси. Така че ЛЯВОТО ВЪНШНО ПРИЛОЖЕНИЕ ще ни даде.

б) Правилно външно присъединяване

Изход на заявка:

Вие сте първоначални, както и последните редове имат координиращи стойности, свързани с C2. Централните редове обикновено не се срещат. Последният краен резултат би могъл да запази всички редове от втората таблица, но всъщност ще остави неизпълнения ред през първата таблица.

  • Срещу лявото външно съединение
  • Всички редове от дясната страна ще бъдат върнати
  • NULL за несъответстваща лява странична маса

пример Изход на заявка:

Получаваме три резултата. Ето нашия резултат ПРАВИЛНО ПРИЛОЖЕНИЕ, където имаме реда от таблицата с имейл адреси, който няма съответен ред в дясната таблица.

4) Пълно външно присъединяване

пример

Изход на заявка:

Ние постигаме да комбинираме резултата от НАЛЯВАНЕ НА ВЪНШНОТО ПРИЛОЖЕНИЕ и ПРАВО ВЪНШНО ПРИЛОЖЕНИЕ

5) Самосъединяване

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

пример

ИЗБЕРЕТЕ *

ОТ поръчки

Присъединете се към абонаменти

ON поръчки.subscription_id = subscriptions.subscription_id;

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

За да получите резултат.

Заключение:

Присъединяването е начинът, по който наистина караме релационния модел да оживее. Релационният модел е свързан с отделяне на данни, нормализиране в множество таблици, но в състояние да ги съберем отново, когато искаме да видим тези взаимоотношения. И различните видове Съединения ни позволяват да правим това по малко различни начини.

Препоръчителни статии

Това е ръководство за Видове съединения в SQL сървъра. Тук обсъждаме прегледа и видовете съединения в SQL с техните примери. Можете да разгледате и другите ни предложени статии, за да научите повече -

  1. Какво е SQL Server?
  2. Кариери в SQL Server
  3. PL SQL обучение
  4. MySQL Оператори
  5. Топ 6 вида съединения в MySQL с примери