Anbefalet, 2024

Redaktørens Valg

Forskel mellem venstre, højre og fuld udvendig deltage

Tidligere har vi diskuteret forskellene mellem Inner Join og Outer Join, hvor vi har oversat typerne af Outer Join. Ydre Join er den, der bevarer tupler i resultatet, som ville være gået tabt, mens du deltog i drift. I denne artikel; vi skal diskutere forskellene mellem de typer af eksterne forbindelser. Der er tre typer af eksternt medlemskab; Venstre Ydre Join, Right Outer Join, og Full Outer Join. Venstre, højre og fuld ydre sammentrængning adskiller sig i deres gennemførelsesplan, og de opnåede resultater. Vi kan udelade et Ydre ord fra venstre, højre og fuld udvendig deltagelse. Lad os undersøge forskellene mellem Venstre, Højre og Fuld ydre Deltag ved hjælp af sammenligningstabel vist nedenfor.

Sammenligningstabel

Grundlag for sammenligningVenstre Ydre JoinRight Outer JoinFuldt udvendigt medlemskab
GrundlæggendeAlle tupler i venstre bord forbliver i resultatet.Alle tupler i højre bord forbliver i resultatet.Alle tupler fra venstre såvel som højre bord forbliver i resultatet.
NULL forlængelseTupperne i venstre bord, der ikke har en matchende tuple i højre tabel, udvides med NULL værdi for attributter i højre tabel.Tuplerne på højre bord, der ikke har en matchende tuple i venstre tabel, udvides med NULL værdi for attributter i venstre bord.
De venstre og højre tavler, der ikke har de tilhørende tupler i henholdsvis højre og venstre bord, udvides med NULL værdi for attributter til højre og venstre tabeller.

Definition af Venstre Ydre Join

Antag, at vi har " Table_A Left Outer Join Table_B ". Så Table_A er vores venstre bord, da det ser ud til at være venstre for Left Outer Join, og Table_B er vores rigtige bord.

Indledningsvis ville det indre sammenføjning blive anvendt på Table_A og Table_B, som vil returnere alle matchende tuple fra tabel A og B.

Derefter returneres alle tuplerne fra Table_A, der ikke har en matchende tuple i Table_B. Sådan vil de resulterende tupler blive polstret med NULL- værdier for attributterne til det højre bord.

Resultatet opnået fra Left Outer Join beholder alle tupler fra venstre bord og kun matchende tupler fra højre bord.

Lad os diskutere Left Outer Join med et eksempel; Vi har to tabeller nedenfor, Studentbord og Afdelingsbord .

Nu vil vi anvende Left Outer Join, på Student og Department Table.

VÆLG * FRA Student LEFT OUTER JOIN Department
ON Student. Student_ID = Department.Student_ID

I forespørgslen ovenfor er tabelstuderende det venstre bord og bordafdeling er det rigtige bord. Så ifølge Left Outer Join, skal resultatet have alle tuplerne fra Studentbordet og kun matchende tupler fra afdelingsbordet.

Overhold resultatet opnået fra Left Outer Join; det har alle tupler fra Studentbordet sammen med de matchende tupler fra både Student og Department bordet. Jimmys student, Joseph Harry of Student bordet var ikke til stede i afdelingsbordet. Derfor udvides attributværdierne for afdelingstabellen til Jimmy, Joseph Harry, til NULL.

Definition af Right Outer Join

Antag, at vi har " Table_A Right Outer Join Table_B ". Så Table_A er vores venstre bord som det ser ud til at være venstre for Right Outer Join operation og Table_B er vores højre bord.

Ligesom i Venstre Ydre Join, blev det indvendige sammentræden påbegyndtTable_A og Table_B, som returnerer alle de matchende tuple fra tabel A og B.

Derefter returneres alle tuplerne fra Table_B, der ikke har en matchende tuple i Table_A. Sådan vil de resulterende tupler blive polstret med NULL værdier for attributterne af venstre bord.

Derfor beholder resultatet opnået fra den højre ydre samling alle tupler fra højre bord og kun matchende tupler fra venstre bord.

Lad os diskutere Right Outer Join med et eksempel; ovenfor har vi to borde, Studentbord og Afdelingsbord.

Nu vil vi anvende Right Outer Join til Studentbord og Afdelingsbord.

VÆLG * FRA HØJERE UDEN JOIN- afdeling
ON Student. Student_ID = Department.Student_ID

I forespørgslen ovenfor er Studentbordet vores venstre bord og afdeling Tabel er vores rigtige bord. Ifølge Right Outer Join-operationen skal resultatet indeholde alle tupler fra afdelingsbordet og kun matchende tupler fra Studentbordet.

Overhold resultatet opnået fra højre ydre sammenføjning; den har alle tuplerne fra afdelingsbordet sammen med de matchende tupler fra både Student og Department bordet. Studenten_ID 10536 og 00954, af afdelingsbordet, er ikke til stede i Studentbordet. Derfor udvides attributværdien af ​​Navn til Student_ID 10536 og 00954 til NULL.

Definition af Fuld ydre tilslutning

Antag, at vi har " Table_A Full Outer Join Table_B ". Så Table_A er vores venstre bord som det ser ud til at være tilbage af Full Outer Join operation og Table_B er vores rigtige bord.

Fuldt udvendigt medlem er kombinationen af begge, Venstre Outer Join og Right Outer Join . Indledningsvis anvender det indvendigt forbundTable_A og Table_B for at hente matchende tupler fra begge tabellerne. Så udvider de disse tupler af Table_A med NULL, der ikke har en matchende tuple i Table_B. Endvidere udvider de disse tupler fra Table_B med NULL, der ikke har en matchende tuple i Table_A.

Derfor holder Full Outer Join alle tuplerne fra venstre såvel som højre bord sammen med de matchende tupler i begge borde.

Lad os diskutere FULL Ydre Join med et eksempel; Vi har to tabeller over, Studentbord og Afdelingsbord .

Nu vil vi anvende Full Outer Join til Studentbord og Afdelingsbord.

VÆLG * FRA Student FULL OUTER JOIN Department
ON Student. Student_ID = Department.Student_ID

I forespørgslen ovenfor er Studentbordet vores venstre bord og afdelingsbordet er vores rigtige bord. Ifølge Full Outer Join, skal resultatet indeholde alle tupler fra begge tabellerne.

Overhold resultatet opnået ved fuld ydre sammenføjning; Det har alle tuplerne fra Student- og Afdelingsbordet sammen med de matchende tupler fra både Studie- og Afdelingsbordet. Eleven af Jimmy, Joseph Harry dvs. henholdsvis 10026, 02256, 56362, af Studentbordet, var ikke til stede i afdelingsbordet. Dermed er attributværdierne for afdelingstabellen til Jimmy, Joseph Harry, udvidet til NULL . Student_ID 10536 og 00954, af afdelingsbordet, er ikke til stede i Student_ID kolonne af Studentbord. Derfor er attributværdien af ​​navnattribut for Student_ID 10536 og 00954 udvidet til NULL .

Nøgleforskelle mellem venstre, højre og fuld udadtil

  1. Resultatet af Left Outer Join har alle tupler i venstre bord. På samme måde har resultatet af Right Outer Join alle tupler på højre bord. Og resultatet af Full Outer Join har alle tuplerne fra både venstre og højre bord.
  2. I venstre ydre samling udbygges tupler af venstre bord, der ikke har en matchende tuple i højre tabel, med Null-værdier for attributterne til det højre bord. Modsat er tilfældet for Right Outer Join. Og i Fuldt Udvendigt Deltag, forlænges tuplerne fra venstre og højre tabeller, der ikke har matchende tupler i henholdsvis højre og venstre tabeller, med NULL for attributterne til henholdsvis højre og venstre bord.

Konklusion:

Pas på positionerne på tabelnavne i en forespørgsel. Da placeringen af ​​tabelnavnet i forespørgsel afgør, om tabellen vil blive betragtet som venstre bord eller højre tabel.

Top