Vrste združitev v SQL Server - Top 5 združuje v SQL Server s primeri

Kazalo:

Anonim

Pregled vrst združitev v SQL Server

Klavzula Pridruži se ključna beseda JOIN združi več tabel v en niz rezultatov. Klavzula FROM bo morala vsebovati vse tabele. Vsako tabelo loči z vejico WHERE, ki je običajno vključena.

Lahko vstavimo Boolov izraz, ki vrne resnično ali napačno, ti izrazi pa se lahko nanašajo na stolpce v vseh tabelah.

Vrste združitev v SQL Server

Obstajajo različne vrste Pridružitve

  • CROSS PRIDRUŽITE se
  • UNUTAR PRIDRUŽITE SE
  • ZUNAJ PRIDRUŽITE se
  1. LEVO ZUNAJ PRIDRUŽITE se
  2. PRAVI ZDRUŽITE SE
  • POPOLNI ZDRUŽITE SE
  • SAMO PRIDRUŽITE SE

Naj podrobneje razumemo vsako od teh povezav: -

1) Križni Pridružite se

  • To je najpreprostejši PRIDRUŽITE se
  • Iz obeh tabel vrne vse vrstice
  • Ne KLJUČNA Klavzula
  • To je tudi najmanj koristno
  • Je zelo neučinkovit
  • Ustvarja kartuzijanski izdelek
  • CROSS implicirana ključna beseda

Primer

Torej vsi iz prve tabele z vsakim koščkom podatkov iz druge tabele brez poskusa kakršnega koli ujemanja, torej to ne želite storiti.

Poiščite klavzujo FROM, kjer imate več tabel in ni klavzule WHERE.

2) Notranji Pridružite se

Izvedba poizvedbe:

Vaša začetna in zadnja vrstica imata usklajevalne vrednosti, povezane s C2. Sredinske vrstice se običajno ne srečujejo. Zadnji končni rezultat podaja vse vrednosti tako iz začetne kot tudi v zadnjih vrsticah, vendar ne vključuje te neprimerne srednje vrstice.

  • To je najbolj značilno PRIDRUŽITE se
  • To je poudarilo relacijsko naravo baze podatkov
  • Omogoča nam primerjanje vrednosti stolpca v eni od tabel z vrednostjo stolpca v drugi od tabel.
  • Primarni ključ v eni od tabel in tuji ključ v eni od drugih tabel.

Primer

Tu je p.person_id primarni ključ v tabeli oseb,

email_address_person_id je naš tuji ključ v tabeli e-poštnih naslovov.

Oglejmo si mizo oseb

Imamo štiri vrstice. In potem vsa ujemanja v tabeli e-poštnih naslovov.

Na koncu bi morali dobiti tri osebe, ker imamo osebo Shannon, ki nima e-poštnega naslova

Rezultat poizvedbe:

Podatke torej dobimo le, če je v obeh tabelah ujemanje obeh stolpcev

3) Zunanja združitev

  • INNER JOIN ne obravnava NULL vrednosti
  • ZUNANJI PRIDRUŽEK deluje tudi, če v drugi tabeli ni nobene tekme.
  • NULL stolpcev, če se v drugi tabeli ne ujema
  • POPOLNI ZDRUŽI vrne vse pridružene vrstice
  • NULL, če se v nobeni tabeli ne ujema

a) Pridružite se levi zunanji strani

Izvedba poizvedbe: Vi ste tako začetni kot zadnji, v zadnjih vrsticah so usklajene vrednosti, povezane s C2. Sredinske vrstice se običajno ne srečujejo. Zadnji končni rezultat bi lahko ohranil vse vrstice prve tabele, vendar dejansko ne bo ustrezal vrstici skozi drugo tabelo.

  • Še ena NULL povezana PRIDRUŽITEV
  • Vse vrstice z leve strani bodo vrnjene
  • NULL za neprimerno desno mizo

Primer

Rezultat poizvedbe:

Opazite, da je v tabeli Person ena vrstica, ki v tabeli e-poštnih naslovov nima vrednosti. Tako nam bo dal LEVI ZUNANJI PRIDRUŽEK.

b) Pridružite se desno

Izvedba poizvedbe:

Vi ste tako začetni kot zadnji, v zadnjih vrsticah so usklajene vrednosti, povezane s C2. Sredinske vrstice se običajno ne srečujejo. Zadnji končni rezultat bi lahko ohranil vse vrstice druge tabele, vendar dejansko ne bo ustrezal vrstici skozi prvo tabelo.

  • Nasproti LEVE ZUNANJE PRIDRUŽITE se
  • Vrnjene bodo vse vrstice z desne strani
  • NULL za neprimerljivo levo stransko mizo

Primer Izvedba poizvedbe:

Dobimo tri rezultate. Tukaj je naš RIGHT OUTER JOIN rezultat, kjer imamo vrstico iz tabele e-poštnih naslovov, ki v desni tabeli nima ustrezne vrstice.

4) Popolna zunanja pridružitev

Primer

Izvedba poizvedbe:

Pridružimo se rezultatu LEFT OUTER JOIN in RIGHT OUTER JOIN

5) Pridružite se sebi

  • SELF ni ključna beseda. Ravno ta ideja je, da si lahko sami postavite mizo
  • Nenavadno, a včasih koristno
  • Brez posebne skladnje
  • Ista tabela na levi in ​​desni strani JOIN
  • Koristno, če tabela vsebuje hierarhične podatke

Primer

IZBERI *

OD naročil

PRIDRUŽITE se naročnin

ON order.subscription_id = subscriptions.subscription_id;

Pridobimo tabelo naročil in tabelo naročnin ter se pridružimo tabeli z izbiro vseh stolpcev.

Da bi dobili rezultat.

Zaključek:

Pridružitve so način, kako resnično oživimo relacijski model. Pri relacijskem modelu so podatki ločeni, normalizirani v več tabel, vendar jih lahko ponovno združimo, ko želimo videti ta razmerja. In različne vrste pridruževanja nam to omogočajo na nekoliko drugačne načine.

Priporočeni članki

To je vodnik za Vrste združitev v SQL strežnik. Tukaj obravnavamo pregled in vrste združitev v SQL z njihovimi primeri. Če želite izvedeti več, lahko preberete tudi druge naše predlagane članke -

  1. Kaj je SQL Server?
  2. Kariera v SQL Serverju
  3. Usposabljanje PL SQL
  4. Operatorji MySQL
  5. Prvih 6 vrst združitev v MySQL s primeri