SQLite

Ako spájať tabuľky v SQLite

Ako spájať tabuľky v SQLite
Niekedy pri práci s databázami možno budeme musieť spojiť záznamy z tabuliek v databáze. V takom prípade môžeme použiť príkaz SQL JOIN, ktorý kombinuje zadané polia pomocou spoločných hodnôt v každom poli.

Existujú tri hlavné typy spojení SQLite.

  1. KRÍŽOVÝ SPOJ
  2. VNÚTORNÉ PRIPOJENIE
  3. VĽAVO VONKAJŠÍ

Tento tutoriál vás rýchlo prevedie týmito spojeniami SQLite a ukáže vám, ako sa pripojiť k záznamom databázy.

Začnime s VNÚTORNÝM SPOJENÍM, ktoré je jednoduché a vytvára pre nás základ pre pochopenie ďalších typov SPOJENIA.

1: VNÚTORNÉ PRIPOJENIE

INNER JOIN funguje tak, že vytvorí novú tabuľku kombináciou hodnôt zadaných tabuliek. Začína sa to porovnaním riadku v každej tabuľke a nájdením všetkých zodpovedajúcich párov podľa zadaného predikátu. Potom skombinuje zodpovedajúce páry do jedného radu.

Všeobecná syntax pre INNER JOIN je:

VYBERTE stĺpce z tabuľky1 VNÚTORNÉ PRIPOJENIE tabuľky2 NA tabuľky1.stĺpec = tabuľka2.stĺpec;

Pozrime sa na operáciu JOIN, aby sme ilustrovali, ako to funguje.

Predpokladajme, že máte tabuľku s názvom users with fields: id, name, age, language-sample SQL query to create table is below:

VYTVORIŤ TABUĽKU „používatelia“ (
„ID“ INTEGER NIE JE NULL,
"meno" TEXT NIE JE NULL,
"vek" INTEGER NIE JE NULL,
„jazyk“ TEXT,
PRIMÁRNY KLÍČ („id“ AUTOINCREMENT)
);

Ďalej máme ďalšiu tabuľku s názvom riadky s poľami id a dotazom na rolu-SQL, ktorý je uvedený nižšie:

VYTVORIŤ TABUĽKU „Roly“ (
„ID“ INTEGER NIE JE NULL,
„rola“ TEXT,
PRIMÁRNY KLÍČ („id“ AUTOINCREMENT)
)

Teraz môžeme spustiť operáciu SQLite INNER JOIN pomocou nižšie uvedeného dotazu:

VYBERTE používateľov.id, používatelia.meno, roly.rola OD POUŽÍVATEĽOV VNÚTORNÉ PRIPOJENIE Rola NA používateľov.id = Roly.id;

Výsledkom vyššie uvedeného dotazu bude tabuľka uvedená nižšie:

2: KRÍŽOVÝ SPOJ

Ďalším typom spojenia SQL je CROSS JOIN. Tento typ sa zhoduje s každým riadkom z prvej tabuľky s každým riadkom v druhej tabuľke. Predstavte si to ako karteziánsky súčin, pretože výsledkom je sada riadkov z tabuľky 1 zhodných s každým riadkom v tabuľke 2. Napríklad ak tabuľka1 má (a) riadky a tabuľka2 má (b) riadky, výsledná tabuľka bude mať riadok * b.

POZNÁMKA: Pri použití krížových spojení buďte opatrní, pretože môžu viesť k enormným množinám tabuliek.

Všeobecná syntax pre krížové spojenie je:

VYBERTE stĺpce z tabuľky1 CROSS JOIN tabuľka2;

Zvážte krížové spojenie z tabuľky používateľa so všetkými riadkami tabuľky rolí. Zvážte nižšie uvedený dotaz SQL:

SELECT * FROM users CROSS JOIN role;

Spustenie vyššie uvedeného dotazu bude mať za následok nasledujúcu tabuľku:

3: ĽAVÝ VONKAJŠÍ SPOJ

Posledným spojením, na ktoré sa pozrieme, je VONKAJŠÍ SPOJ. OUTER JOIN je rozšírením INNER JOIN. Rovnako ako INNER join, vyjadrujeme to za podmienok ako ON, NEUTRAL a USING. Je tiež dobré poznamenať, že SQL definuje tri typy VONKAJŠÍCH SPOJENÍ: ľavé, pravé a úplné, ale SQLite podporuje iba LEFT JOIN.

LEVÉ vonkajšie SPOJENIE vráti všetky riadky z LEVEJ tabuľky zadanej v podmienke a iba riadky z iných tabuliek, kde je splnená podmienka splnená.

Zvážte nasledujúci dotaz.

VYBERTE používateľov.id, používatelia.meno, roly.rola, používatelia.jazyk OD POUŽÍVATEĽOV VĽAVO VONKAJŠÍ PRIPOJTE Rola ON používateľov.id = Roly.id;

Výsledkom vyššie uvedeného dotazu bude tabuľka uvedená nižšie:

Záver

Tento výukový program ilustroval, ako vykonávať spojenia SQL v SQLite a vytvárať nové tabuľky s upravenými informáciami. Je dobré experimentovať s SQL JOINmi, ktoré sa pri práci s databázami veľmi hodia.

Ďakujem za čítanie!

Ako zmeniť smer posúvania myši a touchpadu v systéme Windows 10
Myš a TouchpadNielenže uľahčujú výpočty, ale sú aj efektívnejšie a menej časovo náročné. Nemôžeme si predstaviť život bez týchto zariadení, ale je pra...
Ako zmeniť veľkosť, farbu a schému ukazovateľa myši a kurzora v systéme Windows 10
Ukazovateľ myši a kurzor vo Windows 10 sú veľmi dôležité aspekty operačného systému. Dá sa to povedať aj pre iné operačné systémy, takže v skutočnosti...
Hry Zadarmo a open source herné motory pre vývoj hier pre Linux
Zadarmo a open source herné motory pre vývoj hier pre Linux
Tento článok sa bude zaoberať zoznamom bezplatných a otvorených herných nástrojov, ktoré možno použiť na vývoj 2D a 3D hier v systéme Linux. Existuje ...