Existují tři hlavní typy spojení SQLite.
- CROSS JOIN
- VNITŘNÍ SPOJENÍ
- VLEVO VENKOVNÍ PŘIPOJENÍ
Tento kurz vás rychle provede těmito spojeními SQLite a ukáže vám, jak se připojit k záznamům databáze.
Začněme s VNITŘNÍM PŘIPOJENÍM, jak je to jednoduché, a budujeme základnu pro pochopení dalších typů PŘIPOJENÍ.
1: VNITŘNÍ PŘIPOJENÍ
INNER JOIN funguje vytvořením nové tabulky kombinací hodnot zadaných tabulek. Začíná to porovnáním řádku na každé tabulce a nalezením všech odpovídajících párů na zadaný predikát. Poté kombinuje odpovídající páry do jednoho řádku.
Obecná syntaxe pro INNER JOIN je:
VYBERTE sloupce z tabulky1 VNITŘNÍ PŘIPOJENÍ tabulka2 NA tabulce1.sloupec = tabulka2.sloupec;Podívejme se na operaci JOIN, abychom ilustrovali, jak to funguje.
Předpokládejme, že máte tabulku s názvem users with fields: id, name, age, language-sample SQL query to create table is below:
VYTVOŘIT TABULKU „uživatelé“ („ID“ INTEGER NENÍ NULL,
"name" TEXT NENÍ NULL,
„age“ INTEGER NENÍ NULL,
"jazyk" TEXT,
PRIMÁRNÍ KLÍČ ("id" AUTOMATICKÝ PŘÍPIS)
);
Máme také další tabulku nazvanou řádky s ID polí a dotaz role-SQL poskytnutý níže:
VYTVOŘIT TABULKU „Role“ („id“ INTEGER NENÍ NULL,
"role" TEXT,
PRIMÁRNÍ KLÍČ ("id" AUTOMATICKÝ PŘÍPIS)
)
Nyní můžeme spustit dotaz SQLite INNER JOIN pomocí dotazu uvedeného níže:
VYBRAT uživatele.id, uživatelé.jméno, role.role FROM users INNER JOIN Role ON users.id = Role.id;Výsledkem výše uvedeného dotazu bude tabulka uvedená níže:
2: CROSS JOIN
Druhým typem SQL JOIN je CROSS JOIN. Tento typ odpovídá každému řádku od první tabulky ke každému řádku ve druhé tabulce. Přemýšlejte o tom jako o karteziánském produktu, protože výsledkem je sada řádků z tabulky 1, které odpovídají každému řádku v tabulce 2. Například pokud tabulka1 má (a) řádky a tabulka2 má (b) řádky, výsledná tabulka bude mít řádek * b.
POZNÁMKA: Při použití křížových spojů buďte opatrní, protože mají potenciál vést k obrovským sadám tabulek.
Obecná syntaxe křížového spojení je:
VYBERTE sloupce z tabulky1 CROSS JOIN tabulka2;Zvažte křížové spojení z tabulky uživatele se všemi řádky tabulky rolí. Zvažte níže dotaz SQL:
SELECT * FROM users CROSS JOIN role;Spuštěním výše uvedeného dotazu bude výsledkem tabulka, jak je uvedeno níže:
3: VLEVO VNĚJŠÍ PŘIPOJENÍ
Poslední spoj, na kterou se podíváme, je VNĚJŠÍ PŘIPOJENÍ. VNĚJŠÍ PŘIPOJENÍ je rozšířením VNITŘNÍHO PŘIPOJENÍ. Stejně jako INNER join, vyjadřujeme to za podmínek, jako je ON, NEUTRAL a USING. Je také dobré si uvědomit, že SQL definuje tři typy VNĚJŠÍCH PŘIPOJENÍ: levý, pravý a plný, ale SQLite podporuje pouze LEFT JOIN.
Levý vnější JOIN vrací všechny řádky z LEVÉ tabulky zadané v podmínce a pouze řádky z jiných tabulek, kde je podmínka spojení pravdivá.
Zvažte následující dotaz.
VYBRAT uživatele.id, uživatelé.jméno, role.role, uživatelé.jazyk OD uživatelů VLEVO VNĚJŠÍ PŘIPOJTE Role ON uživatelů.id = Role.id;Výsledkem výše uvedeného dotazu bude tabulka uvedená níže:
Závěr
Tento kurz ilustroval, jak provádět spojení SQL v SQLite a vytvářet nové tabulky s upravenými informacemi. Je dobré experimentovat s SQL JOIN, protože při práci s databázemi jsou velmi užitečné.
Děkuji za přečtení!