Typer sammenføyninger i SQL Server - Topp 5 blir med i SQL Server med eksempler

Innholdsfortegnelse:

Anonim

Oversikt over typer sammenføyninger i SQL Server

Forbindelsesklausulen, JOIN-nøkkelordet er flettet flere tabeller til ett resultatsett. FRA-klausulen vil måtte inkludere alle tabellene. Skiller hvert bord med et komma WHERE-ledd som vanligvis er inkludert.

Vi kan sette inn det boolske uttrykket som returnerer sant eller usant, og disse uttrykkene kan referere til kolonner i alle tabeller.

Typer sammenføyninger i SQL Server

Det er forskjellige typer sammenføyninger

  • CROSS JOIN
  • INNERLEDNING
  • YTRE JOIN
  1. VENSTRE YTRE BLI MED
  2. HØYRE YTRE BLI MED
  • FULL YTRE BLI MED
  • SELV BLI MED

La oss forstå hvert av disse sammenføyningene i detalj:

1) Cross Join

  • Dette er den enkleste BLI MED
  • Den returnerer alle radene fra begge tabeller
  • Ingen HVOR-klausul
  • Dette er også det minst nyttige
  • Det er veldig ineffektivt
  • Det skaper et kartesisk produkt
  • CROSS søkeord underforstått

Eksempel

Så alle fra den første tabellen med hvert stykke data fra den andre tabellen uten forsøk på noen form for samsvar, så dette er det du ikke vil gjøre.

Se etter FRA-ledd der du har flere tabeller, og det er ingen WHERE-ledd.

2) Inner Join

Spørreutgang:

De første og siste radene dine har koordinerende verdier involvert i C2. Midtradene møtes vanligvis ikke. Det siste sluttresultatet gir alle verdier gjennom den innledende så vel som de siste radene, men inkluderer ikke den ikke-matchende midtre seksjonsrad.

  • Dette er mest typisk BLI MED
  • Dette understreket den relasjonelle karakteren til databasen
  • Det lar oss samsvare kolonneverdien i en av tabellene til kolonneverdien i en annen av tabellene.
  • Primærnøkkelen i et av tabellene og en fremmed nøkkel i et av de andre tabellene.

Eksempel

Her er p.person_id den viktigste nøkkelen i persontabellen vår,

email_address_person_id er vår utenlandske nøkkel i e-postadressetabellen.

La oss ta en titt på personbordet

Vi har de fire radene. Og så alle kampene på innsiden av e-postadressetabellen.

Så til slutt, bør få tre personer fordi vi har fått personen Shannon som ikke har en e-postadresse

Spørreutgang:

Så vi får bare dataene der det er samsvar mellom de to kolonnene i hver av tabellene

3) Ytre bli med

  • INNER JOIN behandler ikke NULL-verdier
  • YTRE JOIN fungerer selv om det ikke er noen kamp i det andre tabellen.
  • NULL-kolonner hvis det ikke stemmer med den andre tabellen
  • FULL OUTER JOIN returnerer alle sammenføyede rader
  • NULL når ingen kamp i begge tabellene

a) Venstre ytre del

Spørreutgang: Du er både begynnelse og, de siste radene har koordinerende verdier involvert i C2. Midtradene møtes vanligvis ikke. Det siste sluttresultatet kan beholde alle radene i det første bordet, men vil faktisk utelate den u-matchede raden gjennom det andre tabellen.

  • Nok en NULL-relatert JOIN
  • Alle rader fra venstre side returneres
  • NULL for ikke-matchende høyre sidebord

Eksempel

Spørreutgang:

Du merker at det er en rad i Person-tabellen som ikke har verdier i e-postadressetabellen. Så VENSTRE YTRE JOIN vil gi oss.

b) Høyre ytre del

Spørreutgang:

Du er både begynnelse og, de siste radene har koordinerende verdier involvert i C2. Midtradene møtes vanligvis ikke. Det siste sluttresultatet kan beholde alle radene i det andre tabellen, men vil faktisk utelate den u-matchede raden gjennom det første bordet.

  • Motsatt av VENSTRE YTRE JOIN
  • Alle rader fra høyre side returneres
  • NULL for et ikke-matchende venstre sidebord

Eksempel Spørreutgang:

Vi får tre resultater. Her er RIGHT OUTER JOIN-resultatet der vi har raden fra e-postadressetabellen som ikke har en tilsvarende rad i høyre tabell.

4) Full Ytre Join

Eksempel

Spørreutgang:

Vi får kombinere resultatet av LEFT OUTER JOIN og RIGHT OUTER JOIN

5) Self Join

  • SELF er ikke et nøkkelord. Det er bare denne ideen som du kan få et bord på selv
  • Merkelig, men noen ganger nyttig
  • Ingen spesiell syntaks
  • Samme tabell på venstre og høyre side av JOIN
  • Nyttig når en tabell inneholder hierarkiske data

Eksempel

PLUKKE UT *

FRA bestillinger

BLI MED i abonnement

ON orders.subscription_id = abonnementer.subscription_id;

Vi får bestillingstabell og abonnementstabell og BLI MED i tabellen ved å VELG alle kolonnene.

For å få resultatet.

Konklusjon:

Skjøter er slik vi virkelig får den relasjonsmodellen til å komme til live. Den relasjonsmodellen handler om å ha data skilt ut, normalisert i flere tabeller, men være i stand til å bringe dem sammen igjen når vi vil se de sammenhengene. Og de forskjellige typer sammenføyninger lar oss gjøre det på litt forskjellige måter.

Anbefalte artikler

Dette har vært en guide til Typer av sammenføyninger i SQL-serveren. Her diskuterer vi oversikten og typer sammenføyninger i SQL med deres eksempler. Du kan også gå gjennom andre foreslåtte artikler for å lære mer -

  1. Hva er SQL Server?
  2. Karrierer i SQL Server
  3. PL SQL-trening
  4. MySQL-operatører
  5. Topp 6 typer sammenføyninger i MySQL med eksempler