Anbefalt, 2024

Redaksjonens

Forskjellen mellom venstre, høyre og full utvendig delta

Tidligere har vi diskutert forskjellene mellom Inner Join og Outer Join, der vi har oversikt over typer Outer Join. Ytre Join er den som beholder tuplene i resultatet som ville ha gått tapt mens du ble med. I denne artikkelen; Vi skal diskutere forskjellene mellom typene Outer Join. Det er tre typer Outer Join; Venstre Ytre Bli med, Høyre Ytre Bli med, og Full Ytter Join. Venstre, Høyre og Fullt Utvendig Bli forskjellig i deres utførelsesplan, og de oppnådde resultatene. Vi kan utelate et ytre ord fra venstre, høyre og fullstendig eksternt medlemskap. La oss undersøke forskjellene mellom venstre, høyre og full ytre Bli med ved hjelp av sammenligningstabell vist nedenfor.

Sammenligningstabel

Grunnlag for sammenligningVenstre Ytre Bli medHøyre Ytre Bli medFull Outer Join
grunn~~POS=TRUNCAlle tuplene på venstre bord forblir i resultatet.Alle tupler på høyre bord forblir i resultatet.Alle tuplene fra venstre og høyre bord forblir i resultatet.
NULL forlengelseTuplene på venstre bord som ikke har en matchende tuple i høyre tabell, blir utvidet med NULL-verdi for attributter til høyre tabell.Tuplene til høyre bord som ikke har en matchende tuple i venstre tabell, blir utvidet med NULL-verdi for attributter til venstrebordet.
Tuplene til venstre og høyre bord som ikke har de tilhørende tuplene i henholdsvis høyre og venstre bord, blir utvidet med NULL-verdi for attributter til høyre og venstre tabell.

Definisjon av Venstre Ytre Bli med

Anta at vi har " Table_A Left Outer Join Table_B ". Så Table_A er vårt venstre bord som det ser ut til å være igjen av Left Outer Join- operasjon og Table_B er vårt høyre bord.

I utgangspunktet vil det indre forbindelsen bli anvendt på Tabell_A og Tabell_B som vil returnere all matchende tuple fra tabell A og B.

Deretter returnerer alle tuplene fra Table_A som ikke har en matchende tuple i Table_B. Slik at de resulterende tuplene vil bli polstret med NULL- verdier for attributter til høyre bord.

Resultatet som er oppnådd fra Venstre Outer Join beholder alle tuplene fra venstre bord og bare matchende tupler fra høyre bord.

La oss diskutere Left Outer Join med et eksempel; Vi har to tabeller under, Studentbord og Avdelingstabell .

Nå vil vi søke på venstre side, på student- og avdelingstabell.

VELG * FRA Student LEFT OUTER JOIN Department
ON Student. Student_ID = Avdeling.Student_ID

I spørsmålet ovenfor er tabell Student det venstre bordet og bordet Avdeling er riktig bord. Så ifølge Left Outer Join, må resultatet ha alle tuplene fra Studentbordet, og bare matchende tupler fra avdelingstabellen.

Følg resultatet som er oppnådd fra Left Outer Join; Den har alle tuplene fra Studentbordet sammen med de matchende tuplene fra både Student og Avdelingstabellen. Studenten av Jimmy, Joseph Harry av Studentbordet, var ikke til stede i avdelingstabellen. Følgelig er attributverdiene til avdelingstabellen for Jimmy, Joseph Harry utvidet til NULL.

Definisjon av Right Outer Join

Anta at vi har " Table_A Right Outer Join Table_B ". Så Table_A er vårt venstre bord som det ser ut til å være igjen av Right Outer Join- operasjon og Table_B er vårt høyre bord.

Som i Left Outer Join, ble det innvendige tilførselslaget brukt på Table_A og Table_B som returnerer alle matchende tuple fra tabell A og B.

Deretter returnerer det alle tuplene fra Table_B som ikke har en matchende tuple i Table_A. Slik at de resulterende tuplene ville være polstret med NULL-verdier for attributter til venstrebordet.

Derfor beholder resultatet oppnådd fra høyre ytre ledd alle tuplene fra høyre bord og bare matchende tupler fra venstre bord.

La oss diskutere Right Outer Join med et eksempel; ovenfor har vi to bord, Studentbord og Avdelingstabell.

Nå skal vi bruke Right Outer Join til Studentbord og avdelingstabell.

VELG * FRA Student RIGHT OUTER JOIN Department
ON Student. Student_ID = Avdeling.Student_ID

I spørsmålet ovenfor er Studentbordet vårt venstre bord og avdelingstabellen vårt høyre bord. I henhold til Utreise til høyre, må resultatet inkludere alle tuplene fra avdelingstabellen og bare matchende tupler fra Studentbordet.

Følg resultatet oppnådd fra høyre ytre sammenføyning; den har alle tuplene fra avdelingstabellen sammen med de matchende tuplene fra både student- og avdelingsbordet. Student_ID 10536 og 00954, av avdelingstabell, er ikke til stede i Studentbordet. Følgelig blir attributtverdien til Navn for Student_ID 10536 og 00954 utvidet til NULL.

Definisjon av full utvendig delta

Anta at vi har " Table_A Full Outer Join Table_B ". Så Table_A er vårt venstre bord som det ser ut til å være igjen av Full Outer Join-operasjon og Table_B er vårt høyre bord.

Full Outer Join er kombinasjonen av begge, Left Outer Join og Right Outer Join . I utgangspunktet gjelder det indre sammenføyningTable_A og Table_B for å hente matchende tuples fra begge tabellene. Deretter strekker den ut de tuplene i Table_A med NULL som ikke har en matchende tuple i Table_B. Videre utvider de de to tuplene fra Table_B med NULL som ikke har en matchende tuple i Table_A.

Derfor holder Full Outer Join alle tuplene fra venstre og høyre bord, sammen med de matchende tuplene til begge bordene.

La oss diskutere FULL Outer Join med et eksempel; Vi har to tabeller over, Studentbord og Avdelingstabell .

Nå skal vi bruke Full Outer Join til Studentbord og avdelingstabell.

VELG * FRA Student FULL OUTER JOIN Department
ON Student. Student_ID = Avdeling.Student_ID

I spørsmålet ovenfor er Studentbord vårt venstre bord og avdelingstabell er vårt høyre bord. Ifølge Full Outer Join må resultatet inkludere alle tuplene fra begge bordene.

Følg resultatet som er oppnådd fra full ytre sammenføyning; Den har alle tuplene fra Student- og avdelingstabellen sammen med de matchende tuplene fra både Student og Avdelingstabellen. Studenten av Jimmy, Joseph Harry dvs. 10026, 02256, 56362, av Studentbordet, var ikke til stede i avdelingstabellen. Følgelig er attributtverdiene til avdelingstabellen for Jimmy, Joseph Harry utvidet til NULL . Student_ID 10536 og 00954, av avdelingstabellen, er ikke tilstede i Student_ID-kolonnen Studenttabell. Følgelig blir attributtverdien for Navnattributt for Student_ID 10536 og 00954 utvidet til NULL .

Nøkkelforskjeller mellom venstre, høyre og full utvendig delta

  1. Resultatet av Left Outer Join har alle tuplene i venstre bord. På samme måte har resultatet av Right Outer Join alle tuplene til høyre bord. Og resultatet av Full Outer Join har alle tuplene fra både venstre og høyre bord.
  2. I venstre ytre sammenføyning blir tupler av venstre bord som ikke har en matchende tuple i høyre tabell utvidet med null-verdier for attributter til høyre tabell. Motsatt er tilfellet for Right Outer Join. Og i Full Outer Join, blir tuplene fra venstre og høyre tabeller som ikke har matchende tupler i henholdsvis høyre og venstre bord, utvidet med NULL for attributter av henholdsvis høyre og venstre bord.

Konklusjon:

Ta vare på posisjonene til tabellnavn i en spørring. Da plasseringen av tabellnavnet i spørsmålet avgjør om tabellen skulle betraktes som venstre tabell eller høyre tabell.

Top