SQLite

Kaip sujungti lenteles SQLite

Kaip sujungti lenteles SQLite
Kartais dirbant su duomenų bazėmis mums gali tekti sujungti įrašus iš duomenų bazės lentelių. Tokiu atveju galime naudoti SQL JOIN sakinį, kuris sujungia nurodytus laukus naudodamas bendras kiekvieno lauko reikšmes.

Yra trys pagrindiniai SQLite prisijungimų tipai.

  1. Kryžminis prisijungimas
  2. VIDINIS PRISIJUNGIMAS
  3. 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!

Kaip įdiegti ir žaisti „Doom“ sistemoje „Linux“
Įvadas į Doom „Doom“ serija atsirado 90-aisiais, išleidus originalų „Doom“. Tai buvo tiesioginis hitas, o nuo to laiko žaidimų serija gavo daugybę apd...
„Vulkan“, skirta „Linux“ vartotojams
Kiekvienos naujos kartos grafikos plokštės matome, kaip žaidimų kūrėjai peržengia grafinės ištikimybės ribas ir artėja prie fotorealizmo. Nepaisant vi...
„OpenTTD“ ir „Simutrans“
Sukurti savo transporto modeliavimą gali būti smagu, atpalaiduojanti ir be galo viliojanti. Štai kodėl jūs turite įsitikinti, kad išbandėte kuo daugia...