Det er tre hovedtyper av SQLite-sammenføyninger.
- CROSS JOIN
- INNRE MEDLEM
- VENSTRE YTRE MEDLEM
Denne opplæringen vil raskt lede deg gjennom disse SQLite-sammenføyningene og vise deg hvordan du kan bli med i databaseposter.
La oss begynne med INNER JOIN som det er enkelt og bygger et fundament for oss til å forstå andre JOIN-typer.
1: DEN INNRE MEDLEM
INNER JOIN fungerer ved å lage en ny tabell ved å kombinere verdiene til de angitte tabellene. Det begynner med å sammenligne raden på hver tabell og finne alle matchende par per det angitte predikatet. Den kombinerer deretter matchende par i en enkelt rad.
Den generelle syntaksen for INNER JOIN er:
VELG kolonne (r) FRA tabell1 INNRE JOIN tabell2 PÅ tabell1.kolonne = tabell2.kolonne;La oss se på en JOIN-operasjon for å illustrere hvordan den fungerer.
Anta at du har en tabell som heter brukere med felt: id, navn, alder, språkeksempel SQL-spørring for å opprette tabell er nedenfor:
OPPRETT TABELL "brukere" ("id" INTEGER IKKE NULL,
"navn" TEKST IKKE NULL,
"alder" INTEGER IKKE NULL,
"språk" TEKST,
PRIMÆR NØKKEL ("id" AUTOINCREMENT)
);
Vi har også en annen tabell kalt rader med felt-id, og rolle-SQL-spørring gitt nedenfor:
OPPRETT TABELL "Roller" ("id" INTEGER IKKE NULL,
"rolle" TEKST,
PRIMÆR NØKKEL ("id" AUTOINCREMENT)
)
Nå kan vi kjøre en SQLite INNER JOIN-operasjon ved hjelp av spørringen vist nedenfor:
VELG brukere.id, brukere.navn, Roller.rolle FRA brukere INNER JOIN Roller PÅ brukere.id = Roller.id;Ovenstående spørring vil resultere i tabellen vist nedenfor:
2: CROSS JOIN
Den andre typen SQL JOIN er CROSS JOIN. Denne typen samsvarer med hver rad fra den første tabellen til hver rad i den andre tabellen. Tenk på det som et kartesisk produkt fordi resultatene er et sett med rader fra tabell 1 matchet med hver rad på tabell 2. For eksempel, hvis tabell1 har (a) rader og tabell2 har (b) rader, vil den resulterende tabellen ha en * b rad.
MERK: Vær forsiktig når du bruker tverrfester, da de har potensial til å resultere i enorme bordsett.
Den generelle syntaksen for en kryssforbindelse er:
VELG kolonne (r) FRA tabell1 CROSS JOIN table2;Vurder en kryssforbindelse fra brukerens tabell med alle rader i rolletabellen. Vurder SQL-spørringen nedenfor:
VELG * FRA brukere CROSS JOIN roller;Å kjøre spørringen ovenfor vil resultere i en tabell som vist nedenfor:
3: VENSTRE YTRE JOIN
Den siste sammenføyningen vi skal se på er OUTER JOIN. OUTER JOIN er en utvidelse av INNER JOIN. I likhet med at INNER blir med, uttrykker vi det på forhold som PÅ, NØYTRAL og BRUK. Det er også bra å merke seg at SQL definerer tre typer YTRE JOINS: venstre, høyre og full, men SQLite støtter bare LEFT JOIN.
VENSTRE ytre JOIN returnerer alle rader fra VENSTRE tabellen spesifisert i tilstanden og bare radene fra andre tabeller der den sammenføyde tilstanden er sann.
Tenk på følgende spørsmål.
VELG brukere.id, brukere.navn, roller.rolle, brukere.språk FRA brukere VENSTRE YTRE JOIN Roller PÅ brukere.id = Roller.id;Ovenstående spørsmål vil resultere i tabellen vist nedenfor:
Konklusjon
Denne opplæringen har illustrert hvordan du utfører SQL-sammenkoblinger i SQLite og lager nye tabeller med endret informasjon. Det er bra å fortsette å eksperimentere med SQL JOIN-er, da de kommer veldig godt med når du arbeider med databaser.
Takk for at du leser!