Obstajajo tri glavne vrste pridružitev SQLite.
- PRIKLJUČITEV V CROSS
- INNER JOIN
- LEVO ZUNANJE PRIDRUŽITEV
Ta vadnica vas bo hitro vodila skozi ta združevanja SQLite in vam pokazala, kako se pridružite zapisom baze podatkov.
Začnimo z NOTRANJIM PRIDRUŽITEV, saj je preprosto in ustvarja temelje za razumevanje drugih vrst PRIDRUŽITEV.
1: INNER JOIN
INNER JOIN deluje tako, da ustvari novo tabelo s kombiniranjem vrednosti podanih tabel. Začne se s primerjavo vrstice v vsaki tabeli in iskanjem vseh ujemajočih se parov na določeni predikat. Nato ujemajoče se pare združi v eno vrstico.
Splošna sintaksa za INNER JOIN je:
IZBERI stolpce IZ table1 INNER JOIN tabela2 ON tabela1.stolpec = tabela2.stolpec;Oglejmo si JOIN operacijo, da ponazorimo, kako deluje.
Recimo, da imate tabelo z imenom uporabniki s polji: id, ime, starost, poizvedba SQL z vzorcem jezika za ustvarjanje tabele je spodaj:
USTVARI TABELO "uporabniki" ("id" INTEGER NOT NULL,
"ime" BESEDILO NI NULL,
"starost" INTEGER NOT NULL,
"jezikovno" BESEDILO,
OSNOVNI KLJUČ ("ID" AVTOINCREMENT)
);
Imamo tudi drugo tabelo, imenovano vrstice s polji id in vlogi SQL-Query, ki je navedena spodaj:
USTVARI TABELO "Vloge" ("id" INTEGER NOT NULL,
BESEDILO "vloge",
OSNOVNI KLJUČ ("ID" AVTOINCREMENT)
)
Zdaj lahko zaženemo operacijo SQLite INNER JOIN z uporabo spodnje poizvedbe:
IZBERI uporabnike.id, uporabniki.ime, Vloge.vloga FROM users INNER JOIN Vloge ON uporabnikov.id = Vloge.id;Zgornja poizvedba bo privedla do spodnje tabele:
2: PRIKLJUČENJE V CROSS
Druga vrsta SQL JOIN je CROSS JOIN. Ta vrsta se ujema z vsako vrstico iz prve tabele z vsako vrstico v drugi tabeli. Mislite na to kot na kartezijski izdelek, ker so rezultati niz vrstic iz tabele 1, ki se ujema z vsako vrstico v tabeli 2. Če ima na primer tabela1 vrstice (a) in vrstica tabela2 (b), bo na primer vrstica * b.
OPOMBA: Bodite previdni pri uporabi navzkrižnih združitev, saj lahko privedejo do ogromnih nizov tabel.
Splošna sintaksa za navzkrižno pridružitev je:
IZBERI stolpce IZ IZ tabele1 PRESKLOPI SE PRIDREŽI tabela2;Razmislite o navzkrižnem združevanju iz uporabniške tabele z vsemi vrsticami tabele vlog. Upoštevajte spodnjo poizvedbo SQL:
SELECT * FROM users CROSS JOIN vloge;Zagon zgornje poizvedbe bo privedel do tabele, kot je prikazano spodaj:
3: LEVI ZUNANJI PRIKLJUČEK
Končni spoj, ki si ga bomo ogledali, je ZUNANJI PRIDRUŽITEV. OUTER JOIN je podaljšek NOTRANJEGA PRIDRUŽITEV. Tako kot INNER join se izrazimo tudi pod pogoji, kot so ON, NEVTRAL in USING. Dobro je tudi vedeti, da SQL opredeljuje tri vrste ZUNANJIH PRIDRUŽITEV: levo, desno in polno, vendar SQLite podpira le LEFT JOIN.
LEFT zunanji JOIN vrne vse vrstice iz LEFT tabele, podane v pogoju, in samo vrstice iz drugih tabel, kjer je združeni pogoj resničen.
Razmislite o naslednji poizvedbi.
IZBERI uporabnike.id, uporabniki.ime, vloge.vloga, uporabniki.jezik OD uporabnikov LEVO ZUNANJE PRIDRUŽITEV Vloge uporabnikov.id = Vloge.id;Zgornja poizvedba bo privedla do spodnje tabele:
Zaključek
Ta vadnica je ponazorila, kako izvajati združevanja SQL v SQLite in ustvarjati nove tabele s spremenjenimi informacijami. Dobro je, da nenehno eksperimentirate s SQL JOIN-i, saj so pri delu z bazami podatkov zelo koristni.
Hvala za branje!