Přehled typů připojení v SQL Server
Klauzule Join, klíčové slovo JOIN je sloučeno více tabulek do jedné sady výsledků. Klauzule FROM bude muset zahrnovat všechny tabulky. Každá tabulka odděluje čárkou WHERE klauzule, která je obvykle zahrnuta.
Můžeme vložit logický výraz, který vrací true nebo false, a tyto výrazy mohou odkazovat na sloupce ve všech tabulkách.
Typy připojení na serveru SQL
Existují různé typy spojení
- KRÍŽNÍ PŘIPOJENÍ
- VNITŘNÍ SPOJENÍ
- VNĚJŠÍ PŘIPOJENÍ
- LEFT OUTER JOIN
- PRÁVO VNĚJŠÍ PŘIPOJENÍ
- PLNÝ VNĚJŠÍ PŘIPOJENÍ
- SELF JOIN
Podívejme se na každé z těchto spojení podrobně: -
1) Cross Cross
- Toto je nejjednodušší PŘIPOJENÍ
- Vrací všechny řádky z obou tabulek
- Žádná klauzule WHERE
- To je také nejméně užitečné
- Je to velmi neefektivní
- Vytváří kartézský produkt
- CROSS klíčové slovo zahrnuto
Příklad
Takže všichni z první tabulky se všemi údaji z druhé tabulky se nepokusili o jakoukoli shodu, takže tohle nechcete dělat.
Vyhledejte klauzuli FROM, kde máte více tabulek a neexistuje klauzule WHERE.
2) Vnitřní spojení
Výstup dotazu:
Vaše počáteční a poslední řádky mají koordinační hodnoty spojené s C2. Střední řady se obvykle nesetkávají. Výsledek posledního výsledku poskytuje všechny hodnoty prostřednictvím počátečního i posledního řádku, ale nezahrnují tento nesouhlasný řádek střední sekce.
- Toto je nejtypičtější PŘIPOJENÍ
- To zdůraznilo relační povahu databáze
- Umožňuje nám porovnat hodnotu sloupce v jedné z tabulek s hodnotou sloupce v jiné tabulce.
- Primární klíč v jedné z tabulek a cizí klíč v jedné z ostatních tabulek.
Příklad
Tady p.person_id je náš primární klíč v naší tabulce osob,
email_address_person_id je náš cizí klíč v tabulce e-mailových adres.
Pojďme se podívat na osobní tabulku
Máme ty čtyři řady. A pak všechny zápasy uvnitř tabulky e-mailových adres.
Nakonec by měl mít tři lidi, protože máme osobu Shannona, která nemá e-mailovou adresu
Výstup dotazu:
Takže získáme pouze data, kde existuje shoda mezi dvěma sloupci v každé z tabulek
3) Vnější připojení
- VNITŘNÍ PŘIPOJENÍ se nezabývá hodnotami NULL
- VNĚJŠÍ PŘIPOJENÍ funguje, i když ve druhé tabulce není žádná shoda.
- NULL sloupce, pokud se ve druhé tabulce neshodují
- FULL OUTER JOIN vrátí všechny spojené řádky
- NULL, pokud v žádné tabulce není žádná shoda
a) Levé vnější připojení
Výstup dotazu: Jste počáteční a také poslední řádky mají koordinační hodnoty spojené s C2. Střední řady se obvykle nesetkávají. Poslední konečný výsledek by mohl zachovat všechny řádky první tabulky, ale ve skutečnosti vynechá nevyrovnaný řádek skrz druhou tabulku.
- Další spojení NULL
- Všechny řádky z levé strany budou vráceny
- NULL pro neodpovídající pravou stranu stolu
Příklad
Výstup dotazu:
Všimněte si, že v tabulce Osoba je jeden řádek, který nemá hodnoty v tabulce e-mailových adres. Takže LEFT OUTER JOIN nám dá.
b) Right Outer Join
Výstup dotazu:
Jste počáteční a také poslední řádky mají koordinační hodnoty spojené s C2. Střední řady se obvykle nesetkávají. Poslední konečný výsledek by mohl zachovat všechny řádky druhé tabulky, ale ve skutečnosti vynechá nesrovnaný řádek skrz první tabulku.
- Naproti LEFT OUTER JOIN
- Všechny řádky z pravé strany budou vráceny
- NULL pro neodpovídající levou postranní tabulku
Příklad Výstup dotazu:
Získáme tři výsledky. Zde je náš výsledek RIGHT OUTER JOIN, kde máme řádek z tabulky e-mailových adres, který nemá odpovídající řádek v pravé tabulce.
4) Plné vnější připojení
Příklad
Výstup dotazu:
Spojíme výsledek LEFT OUTER JOIN a RIGHT OUTER JOIN
5) Připojte se
- SELF není klíčové slovo. Je to jen tento nápad, že si můžete udělat stůl sám o sobě
- Zvláštní, ale někdy užitečné
- Žádná speciální syntaxe
- Stejná tabulka na levé a pravé straně JOIN
- Užitečné, pokud tabulka obsahuje hierarchická data
Příklad
VYBRAT *
Z objednávek
PŘIPOJTE se k odběru
ON orders.subscription_id = subscriptions.subscription_id;
Dostaneme tabulku objednávek a tabulku odběrů a připojíme tabulku pomocí SELECT všech sloupců.
Chcete-li získat výsledek.
Závěr:
Spojení jsou způsob, jak opravdu oživíme relační model. Relační model je o rozdělení dat, normalizaci do několika tabulek, ale pokud chceme tyto vztahy vidět, můžeme je znovu spojit dohromady. A různé druhy spojení nám umožňují dělat to trochu jinak.
Doporučené články
Toto byl průvodce Typy spojení na serveru SQL. Zde diskutujeme přehled a typy spojení v SQL s jejich příklady. Další informace naleznete také v dalších navrhovaných článcích -
- Co je SQL Server?
- Kariéra v SQL Serveru
- PL školení SQL
- Operátory MySQL
- Top 6 typů spojení v MySQL s příklady