Úvod do pripojenia do Oracle

Pripojenia v systéme Oracle sa používajú na prístup k údajom z viacerých tabuliek. Spojenie v Oracle sa používa na mieste, kde sa majú spojiť viac ako dve tabuľky, aby sa zhromaždili užitočné informácie v príkaze Oracle SQL. Inými slovami, dotaz na spojenie použitý na načítanie riadkov z viac ako dvoch tabuliek alebo zobrazení na základe podmienok spojenia. Podmienka spojenia sa môže špecifikovať v klauzule FROM alebo v klauzule where. Podmienka spojenia porovná stĺpce rôznych tabuliek a načíta tie riadky, pre ktoré je podmienka spojenia pravdivá.

Typy pripojení v systéme Oracle

V Oracle existuje desať rôznych typov spojení, ako je uvedené nižšie:

  • Vnútorné pripojenia (známe tiež ako Simple Joins)
  • Equi sa pripája
  • Vonkajšie spojenia
  • Ľavé vonkajšie pripojenia (nazývané aj ako ľavé pripojenia)
  • Right Outer Joins (nazývané tiež ako Right Joins)
  • Úplné vonkajšie pripojenia (tiež nazývané ako úplné pripojenia)
  • Self sa pripája
  • Cross Joins (nazývaný tiež ako karteziánske výrobky)
  • Anti Joins
  • Semi Joins

Ďalej rozumieme každému spojeniu podrobne so syntaxou a príkladmi.

1. VNÚTORNÉ PRIPOJENIE (známe aj ako jednoduché pripojenie)

Vnútorné spojenia sa spoja do viacerých tabuliek a vrátia tie riadky, pre ktoré je splnená podmienka spojenia. Vnútorné spojenie je najbežnejším spojením medzi typmi spojenia.

syntaxe:

SELECT column (, column ) FROM t1
INNER JOIN t2
ON t1.column = t2.column;

Nižšie uvedený diagram predstavuje vizuálnu reprezentáciu vnútorného spoja, ako v diagrame sa tieňovaná oblasť vracia ako výsledok Oracle INNER JOIN:

Výsledkom je, že Oracle INNER JOIN vráti priesečníkové záznamy t1 a t2.

Príklad:

SELECT employee.employee _id, employee.employee_name, department. department_name
FROM employee
INNER JOIN department
ON employee.employee _id = department.employee _id;

Tento príklad nad Oracle INNER JOIN vráti všetky riadky z tabuliek zamestnancov a oddelení, v ktorých sa zhoduje hodnota _id zamestnanca v tabuľkách zamestnancov aj oddelení.

2. Equi Joins

Oracle Equi Joins načíta zodpovedajúce hodnoty stĺpcov viacerých tabuliek. Podmienka spojenia alebo operátor porovnania prítomný v klauzuli WHERE príkazu select.

syntaxe:

SELECT column (, column ) FROM t1, t2
where t1.column = t2.column;

Nižšie uvedený diagram predstavuje vizuálne znázornenie equijoin, pretože v diagrame sa tieňovaná oblasť vracia ako výsledok spojenia Oracle Equi Join.

Výsledkom je, že Oracle Equijoin vráti priesečníkové záznamy t1 a t2.

Príklad:

SELECT employee.employee _id, employee.employee_name, department. department_name
FROM employee, department
where employee.employee _id = department.employee _id;

Tento príklad Oracle Equijoin vráti všetky riadky z tabuliek zamestnancov a oddelení, v ktorých sa zhoduje hodnota _id zamestnanca v tabuľkách zamestnancov aj oddelení.

3. Vonkajšie spojenia

Ďalším typom spojení je vonkajšie spojenie, ktoré vracia výsledok vnútorného spojenia plus všetky riadky z jednej tabuľky, pre ktoré nie je splnená podmienka spojenia.

syntaxe:

SELECT column (, column ) FROM t1
LEFT | RIGHT | FULL (OUTER) JOIN t2
ON t1.column = t2.column;

Ako je uvedené nižšie, existujú tri typy vonkajšieho spojenia:

  • Ľavé vonkajšie pripojenia (nazývané aj ako ľavé pripojenia)
  • Right Outer Joins (nazývané tiež ako Right Joins)
  • Úplné vonkajšie pripojenia (tiež nazývané ako úplné pripojenia)

4. Ľavé vonkajšie pripojenie

Návraty ľavého vonkajšieho spojenia obsahujú všetky riadky z tabuľky VĽAVO (podľa zadaného stavu ON) az ostatných tabuliek iba tie riadky, v ktorých je splnená podmienka pravdivá.

syntaxe:

SELECT column (, column ) FROM t1
LEFT (OUTER) JOIN t2
ON t1.column = t2.column;

Kľúčové slovo LEFT OUTER JOIN používa LEFT JOIN v niektorých ďalších databázach.

Nižšie uvedený diagram predstavuje vizuálnu reprezentáciu LEFT OUTER JOIN, pretože v diagrame sa tieňovaná oblasť vracia ako výsledok Oracle LEFT OUTER JOIN:

Výsledkom je, že Oracle LEFT OUTER JOIN vráti všetky záznamy z t1 a pretínajúce sa záznamy t1 a t2.

Príklad:

SELECT employee.employee _id, employee.employee_name, department.department_name
FROM employee
LEFT OUTER JOIN department
ON employee.employee _id = department.employee _id;

Tento príklad nad Oracle LEFT OUTER JOIN vráti všetky riadky z tabuľky zamestnancov a z tabuľky oddelení iba tie riadky, v ktorých je splnená podmienka splnená. Tabuľky oddelení sa zhodujú s hodnotou zamestnanca _id v tabuľkách zamestnancov aj oddelení.

Ak sa hodnota zamestnanca _id v tabuľke zamestnancov zhoduje s tabuľkou oddelení, vo výsledku budú polia tabuľky oddelení vo výsledku nulové.

5. Right Outer Join

Vrátené PRAVÉ VONKAJŠIE PRIPOJENIA obsahujú všetky riadky z tabuľky DOPRAVA (podľa špecifikovaného stavu ON) az ostatných tabuliek iba tie riadky, v ktorých je splnená podmienka splnená.

syntaxe:

SELECT column (, column ) FROM t1
RIGHT (OUTER) JOIN t2
ON t1.column = t2.column;

Kľúčové slovo PRAVÉ VONKAJŠIE POUŽITIE, ktoré sa používa ako PRAVÉ PRIPOJENIE v niektorých iných databázach.

Nižšie uvedený diagram predstavuje vizuálne znázornenie PRAVÉHO VONKAJŠIEHO PRIPOJENIA, pretože v diagrame sa tieňovaná oblasť vracia ako výsledok spojenia Oracle PRAVÉ VONKAJŠIE.

Výsledkom je, že Oracle RIGHT OUTER JOIN vráti všetky záznamy z t2 a pretínajúce sa záznamy t1 a t2.

Príklad:

SELECT employee.employee _id, employee.employee_name, department.department_name
FROM employee
RIGHT OUTER JOIN department
ON employee.employee _id = department.employee _id;

Tento príklad uvedený vyššie v príklade Oracle LEFT OUTER JOIN vráti všetky riadky z tabuľky oddelení az tabuľky zamestnancov iba tie riadky, v ktorých je splnená podmienka splnená. Tabuľky zamestnancov, kde sa hodnota zamestnanca _id v tabuľkách zamestnancov a oddelení zhoduje.

Ak sa hodnota zamestnanca _id v tabuľke zamestnancov zhoduje s tabuľkou oddelení, vo výsledku budú polia tabuľky zamestnancov nulové.

6. Plné vonkajšie pripojenie

Návraty úplného vonkajšieho spojenia obsahujú všetky riadky z tabuľky VĽAVO a tabuľky DOPRAVA s nulovou hodnotou v poliach, v ktorých nie je splnená podmienka spojenia.

syntaxe:

SELECT column (, column ) FROM t1
FULL (OUTER) JOIN t2
ON t1.column = t2.column;

Kľúčové slovo FULL OUTER JOIN sa v niektorých iných databázach používa ako FULL JOIN.

Nižšie uvedený diagram predstavuje vizuálnu reprezentáciu FULL OUTER JOIN, pretože v diagrame sa tieňovaná oblasť vracia ako výsledok Oracle FULL OUTER JOIN.

Výsledkom je, že Oracle FULL OUTER JOIN vráti všetky záznamy z tabuliek t1 a t2.

Príklad:

SELECT employee.employee _id, employee.employee_name, department.department_name
FROM employee
FULL OUTER JOIN department
ON employee.employee _id = department.employee _id;

Tento príklad Oracle FULL OUTER JOIN uvedený vyššie vráti všetky riadky z tabuľky zamestnancov a z tabuľky oddelení s nulovými hodnotami, ak nie je splnená podmienka.

7. Oracle Self Joins

Pri samostatnom pripojení sa tabuľka používa dvakrát v klauzuli FROM pomocou názvu aliasu tabuľky. Inými slovami, ja sa pripojí, pripojí sa k samotnému stolu. Produkt Oracle Self Join kombinuje a vracia riadky tabuľky, kde je splnená podmienka spojenia.

Príklad:

SELECT emp1.employee_name || 'works for' || emp2.employee_name
FROM employees emp1, employees emp2
WHERE emp1.manager_id = emp2.employee_id
ORDER BY emp1.employee_name;

Tento príklad Oracle JOIN nad Oracle vráti všetky riadky z tabuľky zamestnancov, kde je splnená podmienka.

8. Oracle Cross Joins (nazývaný tiež ako karteziánske produkty)

Krížové spojenie sa uplatňuje tam, kde dve tabuľky nemajú podmienku spojenia. Krížové spojenie vráti karteziánsky súčin dvoch tabuliek, karteziánsky výrobok, kde sa každý riadok jednej tabuľky kombinuje s každým radom druhej tabuľky. Predpokladajme, že tabuľka 1 obsahuje 100 riadkov a tabuľka 2 obsahuje 10 riadkov, potom by výsledok spojenia obsahoval 1 000 riadkov.

Príklad;

SELECT employee.employee _id, employee.employee_name, department.department_name
FROM employee
CROSS JOIN department

Tento príklad kríža JOIN vyššie vráti všetky riadky tabuľky zamestnancov kombinované so všetkými riadkami tabuľky oddelení.

9. Oracle Anti Joins

Vrátenia antijoinov obsahujú riadky z tabuľky VĽAVO (podľa špecifikovaného stavu ON), kde je splnená podmienka.

Príklad:

SELECT employee.employee _id, employee.employee_name, department.department_name
FROM employee
WHERE department_id NOT IN (SELECT department_id from department
WHERE department_name = 'sales';

Tento príklad nad Oracle ANTI JOIN vráti riadky z tabuľky zamestnancov a kde je splnená podmienka.

10. Oracle Semi Joins

Vrátenia semijoin obsahujú jedinečné riadky z tabuľky VĽAVO (podľa špecifikovaných v stave ZAPNUTÉ), kde je zhoda EXISTS poddotazu pravdivá.

Príklad:

SELECT employee.employee _id, employee.employee_name
FROM employee
WHERE EXISTS (SELECT department_id FROM department
WHERE department_name = 'sales');

Tento príklad nad Oracle SEMI JOIN vráti riadky z tabuľky zamestnancov, ak EXISTY vrátia true.

záver

Používa sa na prístup k údajom z viacerých tabuliek. V Oracle existuje sedem rôznych typov spojení.

Odporúčané články

Toto je príručka pre pripojenie k systému Oracle. Tu diskutujeme úvod do programu Joins v Oracle a jeho 10 rôznych typov v Joins v Oracle. Viac informácií nájdete aj v ďalších súvisiacich článkoch -

  1. Typy pripojení v SQL
  2. Tableau Joins
  3. Oracle Warehouse Builder
  4. Funkcie reťazca Oracle
  5. Čo je dopyt a typy dopytov Oracle
  6. Top 6 typov spojení v MySQL s príkladmi
  7. Sprievodca top 9 Oracle klauzulami (príklad) l
  8. VÝBER v MySQL | Príklady SELECT v MySQL

Kategórie: