Sqlite ytre sammenføyning

Sqlite ytre sammenføyning
“Venstre sammenføyning eller venstre ytre sammenføyning kombinerer to tabeller. Den henter oppføringer avhengig av et krav oppfylt i begge nødvendige tabeller, med uoverensstemmede rader som kan oppnås fra den definerte tabellen som ble opprettet rett før Join -uttalelsen.SQLite trekker ut alle relevante data fra venstre tabell i situasjonen med venstre sammenføyning eller venstre ytre sammenføyning. Det samsvarer også med disse bare med feltnavn gitt i høyre tabellkrav. Sqlite endrer verdien av hver kolonne i kolonnen til null hvis venstre tabell ikke samsvarer. I denne artikkelen vil vi utforske mer om SQLite Outer Join.”

Lag et bord

Vi må lage to separate tabeller og vil utføre forskjellige spørsmål.

Så etter å ha opprettet databasen, må vi opprette den første tabellen. Vi har brukt "opprette" spørringen for å lage en tabell. Bordet som er opprettet i dette trinnet er “Kunde.”I spørringen om“ Create ”, definerer vi kolonnens navn og deres datatyper. Tabellen "Kunden" har 6 kolonner (C_ID, navn, by, kjøpt_produkt, pris og kjøp_dato). Disse attributtene har datatyper, inkludert heltall, tekst og numerisk.

Lag tabellkunde (
C_ID heltall primærnøkkel,
Navn tekst,
Bytekst,
Kjøpt_produkttekst,
Pris numerisk,
Kjøp_date numerisk
);

Spørringen om “Opprett” utføres vellykket.

Det er nå på tide å lage et annet bord. For å lage en tabell har vi brukt "Opprett" spørringen. "Leverandør" ville være den andre tabellen som ble opprettet i denne fasen. Det er seks forskjellige oppføringer, inkludert S_ID, navn, by, kjøpt produkt, pris og kjøpsdato, i "leverandør" -tabellen. Heltall, tekst og numeriske datatyper er noen av datatypene som er tilgjengelige for disse elementene.

Lag bordleverandør (
S_ID heltall primærnøkkel,
Navn tekst,
Bytekst,
Levert_produkttekst,
Pris numerisk,
Supply_date Numeric
);

Utgangen viser at spørringen ovenfor ble utført uten feil.

Sett inn dataene

Neste trinn er å legge til forskjellige verdier i kolonnene i tabellen “Kunde.”

Sett inn kunde (C_ID, navn, by, kjøpt_produkt, pris, kjøp_date)
Verdier (93, 'Shayan', 'Karachi', 'led', '120000', '18/02/2022 '),
(76, 'Adeel', 'Islamabad', 'Washing Machine', '90000', '04/12/2021 '),
(51, 'Nasir', 'Lahore', 'Microbølgeovn', '25000', '12/01/2022 '),
(37, 'Mohsin', 'Karachi', 'laptop', '150000', '23/02/2022 ');

Resultatet indikerer at spørringen for å legge til data i "kunde" -tabellen ble implementert effektivt.

Spørringen om innsats vil bli brukt for å sette inn innholdet i tabellen "leverandør" -tabell. Vi har lagt til verdiene til ID -er, navn, byer, produkter, priser og forsyningsdatoer for forskjellige leverandører i denne tabellen.

Sett inn leverandør (S_ID, navn, by, levert_produkt, pris, forsyning_date)
Verdier (02, 'Rashid', 'Karachi', 'DSLR Camera', '160000', '18/01/2022 '),
(04, 'Adeel', 'Sargodha', 'Ovn', '80000', '30/12/2021 '),
(08, 'Nabeel', 'Peshawar', 'Microbølgeovn', '30000', '15/08/2020 '),
(05, 'Waleed', 'Swat', 'Generator', '100000', '23/02/2022 ');

Dataene settes inn i tabellen ved å kjøre spørringen ovenfor.

Bruk velg spørring

For å hente innholdet i alle kolonnene i den nødvendige tabellen, må vi bruke SELECT -spørringen sammen med '*' -symbolet. Hver gang vi ønsker å skaffe dataene til noen få kolonner fra tabellen, har vi gitt navnene på disse kolonnene i SELECT -spørringen.

>> Velg * fra kunde;

Produksjonen viser hele posten til de fire forskjellige kundene.

I dette trinnet har vi brukt SELECT -spørringen for tabellen "leverandør", slik at vi kan få dataene fra denne tabellen. Vi har lagt til * -symbolet med det utvalgte begrepet i spørringen for å hente hele dataene.

>> Velg * fra leverandør;

Ved å kjøre den ovennevnte spørringen av Select, henter vi alle verdiene i tabellen “Leverandør.”

Bruk venstre ytre sammenføyning

Venstre sammenføyning og den ytre sammenføyningen fungerer nesten på samme måte. I venstre ytre sammenføyning, her, vil alle oppføringer av kolonnene vi velger fra den andre tabellen bli integrert i spørringens utgang, uavhengig av om dataene tilfredsstiller det gitte kravet til ytre sammenføyning eller ikke. Hvis den andre tabellen inneholder “N” -oppføringer, vil spørringsutgangen også ha “N” -oppføringer. Dataene fra kolonnene i den første tabellen, derimot, vil ha en "null" -verdi om noe element ikke oppfylte kravet til ytre sammenføyning.

Som et resultat vil returverdien i høyre sammenføyning være lik returverdiene i venstre sammenføyning. Derfor kan vi ha de tilsvarende radene med begge de spesifiserte tabellene, så vel som de ikke-matchende oppføringene på den andre tabellen, som vist i de foregående resultatene.

Vi bruker "venstre sammen" for å slå sammen to tabeller "kunde" og "leverandør" i dette eksemplet:

PLUKKE UT
Kunde.Navn, kunde.Pris,
Leverandør.Navn, leverandør.Pris
Fra leverandør
Venstre bli med kunden på leverandøren.By = kunde.By;

I dette tilfellet blir venstre sammen med både "kunde" og "leverandør" -tabeller skrevet først i en spørring, og Koblingskriteriet er skrevet like etter uttalelsen. Venstre tabell (leverandør) vil være den første tabellen etterpå, fra uttalelsen. Høyre tabell (kunde) er den andre tabellen som er gitt videre til venstre sammen. Vi har brukt betingelsen for å bli med på kolonnen "by" for begge tabellene.

Spørringen kjører og returnerer dataene, som vist i tabellen.

Bruk kors ytre sammenføyning

Ved å sammenligne alle oppføringene i den første tabellen, "Kunde" med alle verdiene på den andre tabellen, "Leverandør", returnerer et kryss som returnerer postene i tabellen for verdiene som er tilordnet disse to koblede tabellene.

Vi trenger ikke å definere et sammenføyningskrav ved hjelp av kryssforbindelse, i motsetning til Venstre ytre sammenføyning, da SQLite ikke ville kreve det. Ved å slå sammen omtrent alle dataene fra den første posten, "kunde", sammen med alle oppføringene fra den andre tabellen, "leverandør", ville spørringen gi rimelige resultater.

PLUKKE UT
Kunde.Navn,
Leverandør.Navn
Fra kunde
Cross Join leverandør;

I denne situasjonen ga vi bare to attributter, "navn" og "pris" fra både "kunden" og "leverandør" -tabeller i SELECT -spørringen. I den andre tabellen er "leverandør" gitt som parameter til Cross Join -leddet.

Som vi har sett, inneholder den resulterende tabellen fire rader; Hver rad i "leverandør" -tabellen tilsvarer en post i "kunde" -tabellen. Her vil vi ikke gi noen krav til sammenføyning i Cross Join -leddet, ganske enkelt de to tabellene sammenkoblet ved å bruke Cross Join i midten.

Bruk naturlig venstre ytre sammenføyning

For databasetabellen bruker den naturlige venstre ytre sammenføyningen alle de matchede feltnavnene.

Vi bruker den naturlige venstre ytre sammenføyningsklausulen for å oppfylle en betingelse på tabellen "leverandør" i dette scenariet. Det vil si at vi ønsker å skaffe dataene fra kolonnene fra både "kunden" og "leverandør" -tabeller. Vi vil ikke gi en kolonne her; I stedet oppgir vi tabellen som heter "leverandør" etter å ha brukt Join -leddet.

Velg kunde.By, kunde.Kjøpsdato,
Leverandør.By, leverandør.Supply_date
Fra kunde
Ytre med leverandør;

Den foregående spørringen indikerer resultatet som inneholder dataene (by og forsyning_dato) for begge kolonnene.

Konklusjon

Vi diskuterte detaljene om en ytre sammenføyning i SQLite -spørringen i denne artikkelen. Denne artikkelen har demonstrert mange typer av den ytre sammenføyningsklausulen og hvordan de kan bruke dem ved hjelp av flere tilfeller av Outer Join -leddet. Oppføringene fra venstre tabell vil bli opprettholdt av en venstre ytre sammenføyning. SQLite -spørringen undersøker hver rad i tabellen, sjekker om det nødvendige er oppfylt, og henter de matchende feltene. Det gir null for alle motstridende rader.