SQLite'i liitumisi on kolm peamist tüüpi.
- RIST ÜHENDU
- SISSE LIITU
- VASEM VÄLIS LIITUMINE
See õpetus tutvustab teid kiiresti nende SQLite liitumistega ja näitab, kuidas andmebaasikirjetega liituda.
Alustame sisemisest liitumisest, kuna see on lihtne ja loob meile aluse teiste JOIN-tüüpide mõistmiseks.
1: SISEMINE LIITUMINE
INNER JOIN töötab uue tabeli loomisega, ühendades määratud tabelite väärtused. Alustuseks võrreldakse iga tabeli rida ja leitakse kõik sobivad paarid määratud predikaadis. Seejärel ühendab see sobivad paarid ühte rida.
INNER JOINi üldine süntaks on järgmine:
VALI veerg (ed) tabelist 1 SISE LIITU tabel 2 PÕHJAL tabel1.veerg = tabel2.veerg;Vaatame JOIN-toimingut, et illustreerida selle toimimist.
Oletame, et teil on tabel nimega kasutajad väljadega: allpool on tabeli loomiseks id, nimi, vanus, keelenäidise SQL-päring:
LOE TABEL "kasutajad" ("id" INTEGRE NOT NULL,
"nimi" TEKST EI NULL,
"vanus" INTEGRE NOT NULL,
"keel" TEKST,
PÕHIVÕTI ("ID" AUTOINCREMENT)
);
Meil on ka teine tabel, mida nimetatakse ridadeks, väljad id ja roll-SQL päring allpool:
LOE TABEL "Rollid" ("id" INTEGRE NOT NULL,
"roll" TEKST,
PÕHIVÕTI ("ID" AUTOINCREMENT)
)
Nüüd saame käivitada SQLite INNER JOIN toimingu, kasutades allpool näidatud päringut:
SELECT kasutajad.id, kasutajad.nimi, rollid.roll kasutajatelt SISSE LIITUMINE Kasutajate rollid.id = rollid.id;Ülaltoodud päringu tulemuseks on allpool toodud tabel:
2: RIST ÜHINEMINE
SQL JOINi teine tüüp on CROSS JOIN. See tüüp sobib iga rea esimesest tabelist teise rea iga reaga. Mõelge sellele kui ristkülikukujulisele tootele, sest tulemused on tabeli 1 ridade komplekt, mis sobib iga tabeli 2 reaga. Näiteks kui tabelis1 on (a) ridu ja tabelis2 (b) rida, on tulemuseks tabelis rida * b.
MÄRGE: Ristühenduste kasutamisel olge ettevaatlik, kuna need võivad põhjustada tohutuid lauakomplekte.
Ristühenduse üldine süntaks on:
VALI veerg (ed) FROM table1 CROSS JOIN tabel2;Mõelge kasutaja tabeli ristliitmikule kõigi rollitabeli ridadega. Mõelge allpool olevale SQL-päringule:
SELECT * kasutajate hulgast RISTIGE LIIDU rollid;Ülaltoodud päringu käivitamisel saadakse tabel, nagu allpool näidatud:
3: VASAK VÄLIS LIITUMINE
Viimane liitumine, mida vaatame, on VÄLISLIITUMINE. OUTER JOIN on sisemise liitumise pikendus. Nagu INNER-i liitumine, väljendame seda ka sellistes tingimustes nagu ON, NEUTRAL ja KASUTAMINE. Samuti on hea märkida, et SQL määratleb kolm tüüpi VÄLISLIITUMISI: vasak, parem ja täis, kuid SQLite toetab ainult VASAKU LIITUMIST.
VASAK välimine JOIN tagastab tingimuses määratud VASAKU tabeli kõik read ja ainult teiste tabelite read, kus ühendatud tingimus on tõene.
Mõelge järgmisele päringule.
SELECT kasutajad.id, kasutajad.nimi, rollid.roll, kasutajad.keel kasutajatelt VASAK VÄLJU LIITU Rollid kasutajatel.id = rollid.id;Ülaltoodud päringu tulemuseks on allpool toodud tabel:
Järeldus
See õpetus on illustreerinud, kuidas SQLite-i liitumisi SQLite-is teha ja uusi tabeleid luua muudetud teabega. Hea on jätkata SQL JOIN-ide katsetamist, kuna need on andmebaasidega töötamisel väga kasulikud.
Täname lugemast!