Oluline erinevus: SQL-i ühendused viiakse läbi kahe erineva tabeli andmete ühendamiseks. Inner Join on tingimus, mille tulemuseks on ridad, mis vastavad „kõikidele tabelitele“ vastava lause “kus”; arvestades, et välisliikumine on tingimus, mille tulemuseks on need read, mis vastavad „vähemalt” tabelis sisalduvale punktile „kus”.
Liitumiste rakendamisel luuakse ajutised tabelid, mis põhinevad veergudel. Liitumistingimuste jaoks peaks alati olema kaks tabelit. Need tingimused ühendavad seejärel ühe tabeli vastavad komponendid teiste komponentidega ja tekitavad täiesti uue tabeli. Nende tabelite eesmärk on koguda sisukaid ja vajalikke andmeid või teavet. Sõltuvalt tingimustest on olemas kahte tüüpi ühendusi, sisemine ja välimine ühendus.
SQL INNER JOIN süntaks:
SELECT veeru_nimi (nimed)
Tabelist 1
INNER JOIN tabel2
ON table1.column_name = table2.column_name;
Märksõna INNER JOIN valib kõik read mõlemast tabelist nii kaua, kuni mõlema tabeli veerud vastavad.
Sisemine liitumine sõltub andmebaasi kujunduse ja omaduste valikust. Seega kasutatakse neid sisemisi ühendusi Equi-Joins ja Natural Joins. Equi Joinis on olemas teatud tüüpi võrdlus, mida kasutatakse kahe antud tabeli võrdsustamiseks. Seega kasutab see tabel võrdset predikaati. Looduslik liitumine on Equi tüüpi liitus.
Equi Join'i süntaks on järgmine:
S ELECT *
Tabelist 1, tabelist 2
WHERE table1.coloumn_name = table2.coloumn_name;
Kui samaväärse liidese veergudel on sama nimi, annab vastav SQL versioon valikulise stenogrammi, mida USING konstruktsioon võib väljendada järgmiselt:
SELECT *
Tabelist1 INNER JOIN tabel2 USING (veeru_nimi);
Loodusliku liitumise süntaks on järgmine:
SELECT *
Tabelist 1 NATURAL JOIN tabel2;
„Väline liitumine” ei vaja dokumentide sobitamistingimusi. See liitumistingimus säilitab kõik muud kirjed peale mittevastavate kirjete. See liitumine jaguneb edasi vasakule, paremale ja täielikule välisele liitumisele, mida rakendatakse vastavalt soovitud tabeli tingimustele ja atribuutidele.
Vasakpoolne liitumine
LEFT JOIN-märksõna annab kõik read vasakust tabelist (tabel 1) koos sobivate ridadega paremas tabelis (tabel 2). Tulemus on “NULL” paremal, kui mängu pole.
Vasakpoolse liitumise süntaks on järgmine:
SELECT veeru_nimi (nimed)
Tabelist 1
LEFT OUTER JOIN tabel 2
ON table1.column_name = table2.column_name;
Parem Outer Join
RIGHT JOIN märksõna tagastab kõik read parempoolsest tabelist (tabel 2) koos vasaku tabeli vastavate ridadega (tabel 1). Tulemus on NULL vasakus servas, kui mängu pole.
Parempoolse liitumise süntaks on järgmine:
SELECT veeru_nimi (nimed)
Tabelist 1
PAREM OUTER JOIN table2
ON table1.column_name = table2.column_name;
Täis Outer Join
FULL OUTER JOIN märksõna annab kõik read vasakult tabelist (tabel 1) ja parempoolsest tabelist (tabel 2). FULL OUTER JOIN võtmesõna ühendab nii vasak- kui ka parema liitumise tulemuse.
Full Outer Join'i süntaks on:
SELECT veeru_nimi (nimed)
Tabelist 1
FULL OUTER JOIN tabel2
ON table1.column_name = table2.column_name;
Inner Join'i ja Outer Join'i võrdlus:
Sisemine liitumine | Outer Join | |
Põhifunktsioon | Sisemisi ühendusi kasutatakse põhimõtteliselt sobivate ridade leidmiseks 2 tabeli vahel. | Välisliides säilitab mõlema tabeli või mõlema tabeli read. |
Ühiste muutujate olemasolu | Siin peab ühine muutuja olema kohustuslikult mõlemas tabelis. | Siin sõltub muutuja ainult esimesest tabelist, mis võib või ei pruugi olla teises tabelis. |
Tagastab | Sisemine liitumine tagastab ainult need read, milles on liitumiskriteeriumil põhinev vaste. | Väline liitumine tagastab kõik read, olenemata sellest, kas nad on kokkuleppel põhinevad või ei sobi liituda. |
Harjunud | Seda kasutatakse kirjete vaatamiseks ainult siis, kui dokumendid on mõlemas tabelis olemas. | Seda kasutatakse kõigi kirjete vaatamiseks vaid ühes tabelis. |
Kohaldatav | Neid kohaldatakse: Equi-Join ja Looduslik liitumine | Neid kohaldatakse järgmiselt: Vasakpoolne liitumine Parem Outer Join Täis Outer Join |