Tipuri de uniri în SQL Server - Top 5 se alătură în SQL Server cu exemple

Cuprins:

Anonim

Prezentare generală a tipurilor de uniri în SQL Server

Clauza Join, cuvântul cheie JOIN este îmbinat mai multe tabele într-un set de rezultate. Clauza FROM va trebui să includă toate tabelele. Separa fiecare tabel cu o virgulă, de regulă, inclusă clauza WHERE.

Putem introduce expresia booleană care returnează adevărat sau fals, iar acele expresii se pot referi la coloane din toate tabelele.

Tipuri de uniri în SQL Server

Există diferite tipuri de uniri

  • CROSS JOIN
  • ÎNSCRIE-TE INTERIOR
  • ÎNSCRIEȚI-VĂ
  1. ÎNCHIRIATEA EXTERIORĂ DE STÂNGĂ
  2. ÎNREGISTRARE DREPTULUI
  • ÎNREGISTRARE COMPLETĂ
  • AUTO ÎNSCRIE

Să înțelegem în detaliu fiecare dintre aceste uniri: -

1) Alăturare încrucișată

  • Acesta este cel mai simplu JOIN
  • Întoarce toate rândurile din ambele tabele
  • Nu clauza WHERE
  • Acesta este și cel mai puțin util
  • Este foarte ineficient
  • Creează un produs cartezian
  • Cuvântul cheie CROSS implicat

Exemplu

Deci, toți de la primul tabel cu fiecare informație din cel de-al doilea tabel, fără nicio încercare de a se potrivi, deci acesta este lucrul pe care nu doriți să îl faceți.

Căutați clauza FROM unde aveți mai multe tabele și nu există nici o clauză WHERE.

2) Unire interioară

Rezultatul interogării:

Rândurile dvs. inițiale și ultime au valori de coordonare implicate cu C2. Rândurile de centru nu se întâlnesc de obicei. Ultimul rezultat final furnizează toate valorile prin intermediul inițialului, precum și, ultimele rânduri încă nu includ acel rând care nu corespunde secțiunii medii.

  • Acesta este cel mai tipic ÎNSCRIEȚI-vă
  • Acest lucru a accentuat natura relațională a bazei de date
  • Ne permite să potrivim valoarea coloanei dintr-una din tabele cu valoarea coloanei într-una din alte tabele.
  • Tasta primară într-una din tabele și o cheie străină într-una din celelalte tabele.

Exemplu

Aici p.person_id este cheia noastră principală din tabelul persoanelor noastre,

email_address_person_id este cheia noastră străină din tabelul de adrese de e-mail.

Să aruncăm o privire la masa persoanelor

Avem cele patru rânduri. Și apoi toate potrivirile din interiorul tabelului de adrese de e-mail.

Deci, până la urmă, ar trebui să primim trei persoane, deoarece avem o persoană Shannon care nu are o adresă de e-mail

Rezultatul interogării:

Astfel, obținem doar datele în care există o potrivire între cele două coloane din fiecare dintre tabele

3) Alătura exterioară

  • INNER JOIN nu tratează valorile NULL
  • OUTER JOIN funcționează chiar și atunci când nu se potrivesc în al doilea tabel.
  • Coloane NULL dacă nu se potrivesc în al doilea tabel
  • FULL OUTER JOIN returnează toate rândurile unite
  • NULL când nu se potrivesc în niciunul din tabel

a) Alătura exterioară stângă

Rezultatul interogării: Ești inițial, de asemenea, ultimele rânduri au valori de coordonare implicate cu C2. Rândurile de centru nu se întâlnesc de obicei. Ultimul rezultat final ar putea păstra toate rândurile primei tabele, dar, de fapt, va lăsa rândul nepotrivit prin al doilea tabel.

  • O altă JOIN legată de NULL
  • Toate rândurile din partea stângă vor fi returnate
  • NULL pentru tabelul lateral care nu se potrivește

Exemplu

Rezultatul interogării:

Observați că există un rând în tabelul Persoană care nu are valori în tabelul de adrese de e-mail. Așadar, ÎNCEPUTUL ÎN STÂNGĂ ne va oferi.

b) Alătura exterioară dreaptă

Rezultatul interogării:

Ești inițial, de asemenea, ultimele rânduri au valori de coordonare implicate cu C2. Rândurile de centru nu se întâlnesc de obicei. Ultimul rezultat final ar putea păstra toate rândurile celui de-al doilea tabel, dar de fapt va lăsa rândul nepotrivit prin primul tabel.

  • Opus de ÎNCHIRIAREA EXTERIORĂ DE STÂNGĂ
  • Toate rândurile din partea dreaptă vor fi returnate
  • NULL pentru un tabel lateral stâng care nu se potrivește

Exemplu Rezultatul interogării:

Obținem trei rezultate. Iată rezultatul nostru ÎNTREPRINDEREA DREPTULUI în care avem rândul din tabelul de adrese de e-mail care nu are un rând corespunzător în tabelul din dreapta.

4) Alătura exterioară completă

Exemplu

Rezultatul interogării:

Trebuie să combinăm rezultatul LEFT OUTER JOIN și RIGHT OUTER JOIN

5) Alăturarea de sine

  • SELF nu este un cuvânt cheie. Este doar această idee că poți să îți faci un tabel
  • Ciudat, dar uneori util
  • Fără sintaxă specială
  • Același tabel în partea stângă și dreaptă a ÎNREGISTRĂRII
  • Este util când un tabel conține date ierarhice

Exemplu

SELECTAȚI *

DIN comenzi

ÎNSCRIE-te abonamente

ON comenzi.subscription_id = subscriptions.subscription_id;

Obținem tabel de comenzi și tabel de abonamente și ÎNSCRIEM tabelul folosind SELECT toate coloane

Pentru a obține rezultatul.

Concluzie:

Unirile sunt modul în care facem cu adevărat modelul relațional la viață. Modelul relațional este despre separarea datelor, normalizate în mai multe tabele, dar capabile să le readucem din nou când dorim să vedem relațiile respective. Și diferitele tipuri de uniri ne permit acest lucru în moduri ușor diferite.

Articole recomandate

Acesta a fost un ghid pentru Tipuri de uniri în serverul SQL. Aici discutăm imaginea de ansamblu și tipurile de uniri în SQL cu exemplele lor. Puteți parcurge și alte articole sugerate pentru a afla mai multe -

  1. Ce este SQL Server?
  2. Cariere în SQL Server
  3. PL SQL Training
  4. Operatori MySQL
  5. Top 6 tipuri de uniri în MySQL cu exemple