V SQL, a připojit se používá k porovnání a kombinaci - doslova spojení - a vrácení konkrétních řádků dat ze dvou nebo více tabulek v databázi. An vnitřní spojení vyhledá a vrátí odpovídající data z tabulek, zatímco vnější spojení vyhledá a vrátí odpovídající data a některé odlišné údaje z tabulek.
Vnitřní spojení se zaměřuje na shodnost mezi dvěma tabulkami. Při použití vnitřního spojení musí existovat alespoň některá odpovídající data mezi dvěma (nebo více) tabulkami, které se porovnávají. Vnitřní spojení vyhledává v tabulkách shodu nebo překrývání dat. Po jeho nalezení vnitřní spojení zkombinuje a vrátí informace do jedné nové tabulky.
Podívejme se na společný scénář dvou tabulek: ceny produktů a množství. Společnou informací v obou tabulkách je název produktu, takže logický sloupec pro připojení k tabulkám na. V těchto dvou tabulkách jsou běžné některé produkty; jiné jsou jedinečné pro jednu z tabulek a v druhé tabulce se neshodují.
Vnitřní spojení produkty vrátí informace o pouze produktech, které jsou běžné v obou tabulkách.
Vnější spojení vrátí sadu záznamů (nebo řádků), které obsahují to, co by se vrátilo vnitřní spojení, ale také zahrnuje další řádky, pro které v jiné tabulce není nalezena žádná odpovídající shoda..
Existují tři typy vnějších spojení:
Každý z těchto vnějších spojení se týká části dat, která je porovnávána, kombinována a vrácena. V tomto procesu se někdy vytvoří nulové hodnoty, protože některá data jsou sdílena, zatímco jiná nejsou.
Levé vnější spojení vrátí všechna data v tabulce 1 a všechna sdílená data (tedy vnitřní část příkladu Vennova diagramu), ale pouze odpovídající data z tabulky 2, což je správné spojení.
V naší ukázkové databázi jsou na levé straně dva produkty - pomeranče a rajčata (Ceny tabulka), která nemají odpovídající položku v „pravici“ (tabulka veličin). V levém spojení jsou tyto řádky zahrnuty do sady výsledků s NULL ve sloupci Množství. Ostatní řádky ve výsledku jsou stejné jako vnitřní spojení.
Pravý vnější spoj vrátí data tabulky 2 a všechna sdílená data, ale pouze odpovídající data z tabulky 1, což je levé spojení.
Podobně jako v případě levého spoje zahrnuje výstup pravého vnějšího spoje všechny řádky vnitřního spoje a dva řádky - brokolici a tykev - z „pravého“ (Množství tabulka), které nemají odpovídající položky vlevo.
Úplné vnější spojení nebo úplné spojení, což je ne podporovaný populárním systémem správy databází MySQL, kombinuje a vrací Všechno data ze dvou nebo více tabulek, bez ohledu na to, zda existují sdílené informace. Představte si úplné spojení jako jednoduše duplikování všech zadaných informací, ale v jedné tabulce, spíše než ve více tabulkách. Pokud chybí odpovídající data, budou vytvořeny nuly.
To jsou jen základy, ale spoustu věcí lze udělat s připojením. Existují dokonce i spojení, která mohou vyloučit další spojení!
Toto video vysvětluje rozdíl mezi různými typy spojení. Začne se v okamžiku, kdy začíná diskuse o spojení.