Obsah:
Definícia - Čo znamená spojenie?
Spojenie je operácia SQL vykonaná na vytvorenie spojenia medzi dvoma alebo viacerými databázovými tabuľkami na základe zodpovedajúcich stĺpcov, čím sa vytvorí vzťah medzi tabuľkami. Najzložitejšie dotazy v systéme správy databázy SQL zahŕňajú príkazy join.
Existujú rôzne typy spojení. Typ spojenia, ktorý programátor používa, určuje, ktoré záznamy vyberie dotaz. Za operáciami spojenia pracujú tri algoritmy: spojenie hash, spojenie triedenia a zlúčenia a spojenie vnorených slučiek.
Techopedia vysvetľuje pripojiť sa
Predvoleným typom spojenia je vnútorné spojenie. Vnútorné spojenie vyberá záznamy z dvoch tabuliek, ktoré obsahujú zodpovedajúce hodnoty. Záznamy, ktoré neobsahujú porovnateľné alebo bežné hodnoty, sú z výstupu vylúčené. Dotaz porovnáva každý riadok prvej tabuľky s riadkami druhej tabuľky a vyhľadáva riadky, ktoré uspokoja predikát spojenia.
Napríklad, ak jedna tabuľka obsahuje podrobnosti o zamestnancovi a druhá obsahuje informácie o manažérovi, na tabuľkách zamestnancov a manažérov sa môže vykonať spojenie, aby sa zobrazili zamestnanci, ktorí sú zároveň manažérmi. Nasledujúci dotaz zobrazuje zamestnancov, ktorí sú manažérmi:
VYBERTE * Z VNÚTORNÉHO ZARIADENIA Zamestnanec ZAPNUTÉ Zamestnanec.Managerid = Manager.Managerid
Spojenie sa vždy vykonáva na zodpovedajúcich stĺpcoch, ktoré sú špecifikované v klauzule „ON“ dotazu. Zodpovedajúci stĺpec v tomto príklade je „Managerid“. Pretože sa používa operátor '=', nazýva sa equijoin.
Prirodzené spojenie tiež vytvára rovnaký výstup, ale v klauzule o pripojení používa kľúčové slovo „USING“. Vyššie uvedený dotaz môže byť modifikovaný nasledovne na označenie prirodzeného spojenia:
VYBRAŤ zamestnanca, vedúceho od zamestnanca INNER JOIN manažéra USING (Managerid)
Aj keď nie je zadaný zodpovedajúci stĺpec, spojenie sa stále vykonáva medzi dvoma tabuľkami. Tento typ spojenia sa nazýva krížové spojenie (niekedy sa nazýva karteziánsky výrobok), čo je najjednoduchšia forma spojenia. Pretože nie je zadané obmedzenie pre kľúč, každý riadok v prvej tabuľke je spojený so všetkými riadkami v druhej tabuľke. Ak má prvá tabuľka dva riadky a druhá tabuľka má tri riadky, výstup bude mať šesť riadkov.
Vonkajší spoj je ďalším dôležitým typom spoja. Vonkajšie spojenia sa všeobecne považujú za výstupy všetkých záznamov jednej tabuľky a zodpovedajúcich záznamov druhej tabuľky. Vonkajší spoj môže byť buď ľavý vonkajší spoj alebo pravý vonkajší spoj. Pri ľavom vonkajšom spojení sa vo výstupe zobrazia všetky tabuľky ľavej tabuľky - aj keď nespĺňajú podmienky zhody - a zodpovedajúce riadky pravej tabuľky. Pri pravom vonkajšom spojení sa ako výstup zobrazia všetky riadky pravej tabuľky a zodpovedajúce riadky ľavej tabuľky.
V zriedkavých prípadoch môže byť tabuľka spojená so sebou. Tomu sa hovorí self-join.