Kľúčové rozdiely: Spájajú sa do SQL na kombináciu údajov dvoch rôznych tabuliek. Vnútorný spoj je stav, ktorý vedie k riadkom, ktoré vyhovujú doložke "kde" v "všetkých tabuľkách"; zatiaľ čo vonkajší spoj je podmienkou, ktorá vedie k tým riadkom, ktoré vyhovujú doložke "kde" v "aspoň jednej z tabuliek".
Pri implementácii spojenia sú vytvorené dočasné tabuľky založené na stĺpcoch. V podmienkach pripojenia by mali byť vždy dve tabuľky. Tieto podmienky potom zlúčiť jednotlivé komponenty jednej tabuľky s ostatnými komponentmi a vytvoriť úplne novú tabuľku. Cieľom týchto tabuliek je získať zmysluplné a požadované údaje alebo informácie. V závislosti od podmienok existujú dva typy spojov, vnútorné a vonkajšie spoje.
SQL INNER JOIN Syntax:
SELECT názov stĺpca (s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
Kľúčové slovo INNER JOIN vyberie všetky riadky z obidvoch tabuliek, pokiaľ existuje zhoda medzi stĺpcami v obidvoch tabuľkách.
Vnútorné spojenia závisia od výberu návrhov a charakteristík databázy. Preto sa tieto vnútorné spojky používajú v Equi-Joins a Natural Joins. V Equi Join existuje špecifický typ porovnania, ktorý sa používa na vyrovnanie dvoch daných tabuliek. Preto táto tabuľka používa rovnaký predikát. Prirodzený spoj je typ spojenia Equi.
Syntax pre Equi Join je nasledujúci:
S ELECT *
Z tabuľky 1, tabuľky 2
WHERE table1.coloumn_name = table2.coloumn_name;
Ak majú stĺpce v equi-join rovnaký názov, príslušná verzia SQL poskytuje voliteľnú skratovú notáciu, ktorá môže byť vyjadrená konštrukciou USING ako:
SELECT *
FROM table1 INNER JOIN table2 POUŽITIE (column_name);
Syntax prirodzeného pripojenia je nasledujúci:
SELECT *
FROM table1 NATURAL JOIN table2;
"Vonkajší spoj" nepotrebuje zodpovedajúce podmienky pre záznamy. Tento stav pripojenia zachováva všetky ostatné záznamy okrem nezhodných záznamov. Tento spoj je ďalej rozložený v ľavom, pravom a plnom vonkajších spojovacích podmienkach, ktoré sú realizované podľa želaných tabuľkových podmienok a atribútov.
Ľavý vonkajší spoj
Kľúčové slovo LEFT JOIN vráti všetky riadky z ľavej tabuľky (tabuľka1) so zodpovedajúcimi riadkami v pravej tabuľke (tabuľka2). Výsledok je "NULL" na pravej strane, keď nie je žiadna zhoda.
Syntax ľavého vonkajšieho spojenia nasleduje:
SELECT názov stĺpca (s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name = table2.column_name;
Vpravo vonkajšie spojenie
Kľúčové slovo RIGHT JOIN vracia všetky riadky z pravej tabuľky (tabuľka2) so zodpovedajúcimi riadkami v ľavej tabuľke (tabuľka1). Výsledok je NULL na ľavej strane, keď nie je žiadna zhoda.
Syntax pravého vonkajšieho spojenia nasleduje:
SELECT názov stĺpca (s)
FROM table1
PRAVÝ VONKAJŠÍ SPOJENÝ STUP 2
ON table1.column_name = table2.column_name;
Úplné vonkajšie spojenie
Kľúčové slovo FULL OUTER JOIN vráti všetky riadky z ľavej tabuľky (tabuľka1) a pravej tabuľky (tabuľka2). Kľúčové slovo FULL OUTER JOIN kombinuje výsledok spojenia LEFT a RIGHT.
Syntax pre Full Outer Join je:
SELECT názov stĺpca (s)
FROM table1
PLNÝ VONKAJŠÍ JEDNOTKA2
ON table1.column_name = table2.column_name;
Porovnanie medzi vnútorným pripojením a vonkajším pripojením:
Vnútorný spoj | Vonkajší spoj | |
Základná funkcia | Vnútorné spojenia sa v podstate používajú na nájdenie zodpovedajúcich riadkov medzi 2 tabuľkami. | Vonkajší spoj si zachováva riadky tabuľky alebo oboch tabuliek. |
Existencia spoločných premenných | V tomto prípade musí byť spoločná premenná povinne uvedená v oboch tabuľkách. | Tu premenná závisí len od prvej tabuľky, ktorá môže alebo nemusí byť prítomná v druhej tabuľke. |
výnos | Vnútorné spojenie vráti iba riadky, v ktorých existuje zhoda založená na predikáte spojenia. | Vonkajšie spojenie vráti všetky riadky, či sú založené na zhody alebo nie sú zosúladené - na základe predikátu spojenia. |
Používa sa | Slúži na zobrazenie záznamov iba vtedy, keď sú záznamy na oboch tabuľkách. | Používa sa na zobrazenie všetkých záznamov iba v jednej tabuľke. |
Platí v | Uplatňujú sa v: Equi-Join a Prírodné spojenie | Sú uplatniteľné ako: Ľavý vonkajší spoj Vpravo vonkajšie spojenie Úplné vonkajšie spojenie |