Postoje tri glavne vrste spajanja SQLite.
- KRIŽNI SE PRIDRUŽITE
- UNUTARNJE PRIDRUŽIVANJE
- LIJEVO VANJSKO PRIDRUŽITE
Ovaj vodič će vas brzo provesti kroz ove SQLite pridruživanja i pokazati vam kako se pridružiti zapisima baze podataka.
Počnimo s UNUTARNJIM PRIDRUŽIVANJEM, jer je to jednostavno i gradi nam temelj za razumijevanje ostalih vrsta PRIDRUŽIVANJA.
1: UNUTARNJE PRIDRUŽIVANJE
UNUTARNJE PRIDRUŽIVANJE djeluje stvaranjem nove tablice kombiniranjem vrijednosti navedenih tablica. Počinje usporedbom retka na svakoj tablici i pronalaženjem svih odgovarajućih parova po navedenom predikatu. Zatim kombinira odgovarajuće parove u jedan red.
Opća sintaksa za INNER JOIN je:
ODABERI stupac (e) IZ table1 INNER JOIN tablica2 ON table1.stupac = tablica2.stupac;Pogledajmo operaciju JOIN da bismo ilustrirali kako ona funkcionira.
Pretpostavimo da imate tablicu koja se zove korisnici s poljima: id, ime, dob, uzorak jezika SQL upit za stvaranje tablice nalazi se ispod:
IZRADI TABELU "korisnici" ("id" INTEGER NIJE NULL,
"ime" TEKST NIJE NULL,
"dob" CIJELI NIJE NULL,
"jezični" TEKST,
PRIMARNI KLJUČ ("id" AUTOINCREMENT)
);
Također imamo još jednu tablicu koja se naziva redovi s poljima id i ulogom SQL-upita navedenog u nastavku:
IZRADI TABELU "Uloge" ("id" INTEGER NIJE NULL,
"uloga" TEKST,
PRIMARNI KLJUČ ("id" AUTOINCREMENT)
)
Sada možemo pokrenuti operaciju SQLite INNER JOIN koristeći upit prikazan u nastavku:
ODABERITE korisnike.id, korisnici.ime, Uloge.uloga OD korisnika UNUTARNJE PRIDRUŽIVANJE Uloge O korisnicima.id = Uloge.iskaznica;Gornji upit rezultirat će dolje prikazanom tablicom:
2: PRIKLJUČAK
Druga vrsta SQL PRIDRUŽIVANJA je CROSS JOIN. Ova vrsta podudara svaki redak iz prve tablice sa svakim retkom u drugoj tablici. Shvatite to kao kartezijski proizvod jer su rezultati skup redaka iz tablice 1 koji se podudaraju sa svakim retkom u tablici 2. Na primjer, ako table1 ima (a) retke, a table2 (b) retke, rezultirajuća tablica će imati * b redak.
BILJEŠKA: Budite oprezni pri korištenju unakrsnih spajanja jer oni mogu rezultirati ogromnim setovima tablica.
Općenita sintaksa za cross join je:
ODABERI stupac (e) IZ tablice1 PRESEŽI tablicu2;Razmislite o unakrsnom spajanju iz korisničke tablice sa svim redovima tablice uloga. Razmotrite SQL upit u nastavku:
ODABIR * OD korisnika PRESJEDITE se ulogama;Pokretanje gornjeg upita rezultirat će tablicom kao što je prikazano u nastavku:
3: LIJEVA VANJSKA PRIDRUŽITELJA
Konačno pridruživanje koje ćemo pogledati je VANJSKO PRIDRUŽIVANJE. VANJSKI PRIDRUŽENO je produžetak UNUTARNJEG PRIDRUŽIVANJA. Poput INNER join, izražavamo je pod uvjetima kao što su ON, NEUTRAL i USING. Također je dobro napomenuti da SQL definira tri vrste VANJSKIH PRIDRUŽIVANJA: lijevo, desno i potpuno, ali SQLite podržava samo LIJEVO PRIDRUŽIVANJE.
LIJEVA vanjska JOIN vraća sve retke iz LIJEVE tablice navedene u stanju i samo retke iz drugih tablica u kojima je pridruženi uvjet istinit.
Razmotrite sljedeći upit.
ODABERITE korisnike.id, korisnici.ime, uloge.uloga, korisnici.jezik OD korisnika LIJEVO VANJSKO PRIDRUŽITE Uloge NA korisnicima.id = Uloge.iskaznica;Gornji upit rezultirat će dolje prikazanom tablicom:
Zaključak
Ovaj je vodič ilustrirao kako izvesti SQL spajanja u SQLiteu i stvoriti nove tablice s modificiranim informacijama. Dobro je nastaviti eksperimentirati s SQL PRIDRUŽIVANJIMA jer oni vrlo dobro dođu prilikom rada s bazama podataka.
Hvala na čitanju!