Yra trys pagrindiniai SQLite prisijungimų tipai.
- Kryžminis prisijungimas
- VIDINIS PRISIJUNGIMAS
- Kairysis išorinis prisijungimas
Šioje pamokoje greitai sužinosite apie šiuos „SQLite“ prisijungimus ir parodysite, kaip prisijungti prie duomenų bazės įrašų.
Pradėkime nuo „INNER JOIN“, nes tai paprasta ir sukuria pagrindą mums suprasti kitus JOIN tipus.
1: VIDINIS PRISIJUNGIMAS
INNER JOIN veikia kuriant naują lentelę, derinant nurodytų lentelių reikšmes. Pradedama lyginant kiekvienos lentelės eilutę ir surandant visas atitinkančias poras pagal nurodytą predikatą. Tada derinamos poros sujungiamos į vieną eilę.
Bendroji INNER JOIN sintaksė yra:
PASIRINKITE stulpelius iš lentelės1 INNER JOIN lentelė2 Į lentelę1.stulpelis = lentelė2.stulpelis;Pažvelkime į JOIN operaciją, kad parodytume, kaip ji veikia.
Tarkime, kad turite lentelę, pavadintą vartotojais su laukais: ID, vardas, amžius, kalbos pavyzdžio SQL užklausa lentelei sukurti yra žemiau:
SUKURTI LENTEL "„ vartotojai “(„id“ INTEGRAS NE NULL,
"vardas" TEKSTAS NENUOL,
„amžius“ INTEGRAS NE NULL,
„kalba“ TEKSTAS,
PAGRINDINIS RAKTAS („ID“ AUTOINCREMENT)
);
Mes taip pat turime kitą lentelę, pavadintą eilutėmis su laukais id ir vaidmenų SQL užklausa, pateikta žemiau:
SUKURTI LENTEL "„ Vaidmenys “(„id“ INTEGRAS NE NULL,
„vaidmuo“ TEKSTAS,
PAGRINDINIS RAKTAS („ID“ AUTOINCREMENT)
)
Dabar mes galime paleisti SQLite INNER JOIN operaciją naudodami žemiau pateiktą užklausą:
SELECT vartotojai.ID, vartotojai.vardas, Vaidmenys.vaidmuo IŠ vartotojų INNER JOIN Vaidina vartotojus.id = Vaidmenys.id;Pirmiau pateiktoje užklausoje bus pateikta žemiau parodyta lentelė:
2: Kryžminis prisijungimas
Kitas SQL JOIN tipas yra CROSS JOIN. Šis tipas sutampa su kiekviena pirmos lentelės eilute ir kiekviena antros lentelės eilute. Pagalvokite apie tai kaip apie Dekarta produktą, nes rezultatai yra 1 lentelės eilučių rinkinys, suderintas su kiekviena 2 lentelės eile. Pvz., Jei lentelėje1 yra (a) eilutės, o lentelėje2 (b) eilutės, gautoje lentelėje bus eilutė * b.
PASTABA: Būkite atsargūs naudodami kryžminius sujungimus, nes jie gali sukelti didžiulius stalo rinkinius.
Bendra kryžminio sujungimo sintaksė yra:
Pasirinkti stulpelius (-ius) iš lentelės1 CROSS JOIN lentelė2;Apsvarstykite kryžminį sujungimą iš vartotojo lentelės su visomis vaidmenų lentelės eilutėmis. Apsvarstykite toliau pateiktą SQL užklausą:
SELECT * FROM users CROSS JOIN vaidmenys;Vykdant anksčiau pateiktą užklausą, bus pateikta lentelė, kaip parodyta žemiau:
3: Kairysis išorinis prisijungimas
Paskutinis prisijungimas, į kurį mes žiūrėsime, yra OUTER JOIN. „OUTER JOIN“ yra „INNER JOIN“ pratęsimas. Kaip ir „INNER“ prisijungimas, mes tai išreiškiame tokiomis sąlygomis kaip ĮJUNGTA, NEUTRALI ir NAUDOJANT. Taip pat gerai pažymėti, kad SQL apibrėžia tris OUTER JOINS tipus: kairįjį, dešinįjį ir pilnąjį, tačiau SQLite palaiko tik LEFT JOIN.
Kairysis išorinis JOIN grąžina visas eilutes iš kairės lentelės, nurodytos sąlygoje, ir tik eilutes iš kitų lentelių, kuriose teisinga sujungta sąlyga.
Apsvarstykite šią užklausą.
SELECT vartotojai.ID, vartotojai.vardas, vaidmenys.vaidmuo, vartotojai.kalba iš vartotojų Kairysis išorinis prisijungimas Vaidina vartotojus.id = Vaidmenys.id;Pirmiau pateiktoje užklausoje bus pateikta žemiau parodyta lentelė:
Išvada
Šioje pamokoje pavaizduota, kaip atlikti SQL sujungimus SQLite ir sukurti naujas lenteles su modifikuota informacija. Gera toliau eksperimentuoti su SQL JOIN, nes jie labai praverčia dirbant su duomenų bazėmis.
Ačiū, kad skaitėte!