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.
nahlásit tuto reklamu 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í.