Introducere în Uniri în Oracle

Unirile din Oracle sunt utilizate pentru a accesa datele din mai multe tabele. O alăturare în oracle este utilizată într-un loc unde trebuie să se alăture mai mult de două tabele pentru a colecta informațiile utile din instrucțiunea SQL Oracle. Cu alte cuvinte, interogarea de unire folosită pentru preluarea rândurilor din mai mult de două tabele sau vizualizări pe baza condițiilor de unire. Condiția de unire poate fi specificată în clauza FROM sau în clauza unde. Condiția de unire compară coloanele diferitelor tabele și preia acele rânduri pentru care condiția de unire este adevărată.

Tipuri de uniri în Oracle

În Oracle, există zece tipuri diferite de îmbinări sunt prezentate mai jos:

  • Unirile interioare (cunoscute și sub numele de Simple Joins)
  • Equi se alătură
  • Unirile exterioare
  • Alăturați stânga stângă (numiți de asemenea drept stângați)
  • Unirile din dreapta exterioară (numite și drept uniri drept)
  • Unirile externe complete (denumite și sub denumirea de uniri complete)
  • Self Joins
  • Îmbinări încrucișate (denumite și produse carteziene)
  • Anti Joins
  • Semi unită

În continuare, înțelegem fiecare îmbinare în detaliu cu sintaxa și exemple.

1. INNER JOIN (cunoscută și sub numele de Simple Join)

Unirile interne se alătură mai multor tabele și returnează acele rânduri pentru care condiția de unire este adevărată. Alătura interioară este cea mai frecventă îmbinare dintre tipurile de îmbinare.

Sintaxă:

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

Diagrama de mai jos reprezintă reprezentarea vizuală a îmbinării interioare, ca în diagrama întoarcerea zonei umbrite ca urmare a Oracle INNER JOIN:

Oracle INNER JOIN returnează înregistrările intersectate ale t1 și t2 ca rezultat.

Exemplu:

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

Acest exemplu de mai sus Oracle INNER JOIN va returna toate rândurile din tabelele de angajați și departamente în care se potrivește valoarea _id a angajatului atât în ​​tabelele de angajat cât și în cele de departament.

2. Equi se alătură

Oracle Equi Joins preia valorile coloanei potrivite din mai multe tabele. Condiția de unire sau operatorul de comparație prezent în clauza WHERE din instrucțiunea select.

Sintaxă:

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

Diagrama de mai jos reprezintă reprezentarea vizuală a ecuiului, la fel ca în diagrama întoarcerea zonei umbrate ca rezultat al unirii Oracle Equi.

Oracle Equijoin returnează înregistrările intersectate ale t1 și t2 ca urmare.

Exemplu:

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

Acest exemplu de mai sus Oracle Equijoin va returna toate rândurile din tabelele de angajați și departamente în care se potrivește valoarea _id a angajatului atât în ​​tabelele de angajat cât și în cele de departament.

3. Unirile exterioare

Un alt tip de îmbinări este o îmbinare exterioară care returnează un rezultat al îmbinării interioare, plus toate rândurile dintr-o tabelă pentru care condiția de unire nu este adevărată.

Sintaxă:

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

Există trei tipuri de îmbinare exterioară, așa cum este prezentat mai jos:

  • Alăturați stânga stângă (numiți de asemenea drept stângați)
  • Unirile din dreapta exterioară (numite și drept uniri drept)
  • Unirile externe complete (denumite și sub denumirea de uniri complete)

4. Unire exterioară stângă

Întoarcerile de ieșire exterioară stânga conțin toate rândurile din tabelul LEFT (în conformitate cu specificația din condiția ON) și din cealaltă tabelă numai acele rânduri în care condiția unită este adevărată.

Sintaxă:

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

Cuvântul cheie LEFT OUTER JOIN, utilizează un LEFT JOIN în unele alte baze de date.

Diagrama de mai jos reprezintă reprezentarea vizuală a LEFT OUTER JOIN, la fel ca în diagrama întoarcerea zonei umbrate ca urmare a Oracle LEFT OUTER JOIN:

Oracle LEFT OUTER JOIN returnează toate înregistrările de la t1 și de la intersecția înregistrărilor t1 și t2 ca urmare.

Exemplu:

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

Acest exemplu de mai sus Oracle LEFT OUTER JOIN va returna toate rândurile din tabelul angajaților și de la tabelul departament numai acele rânduri în care condiția unită este adevărată. Tabelele departamentale în care se potrivesc valoarea _id a angajatului atât în ​​tabelele de angajat cât și în cele de departament.

Dacă valoarea angajatului _id din tabelul angajaților se potrivește în tabelul departamentului, atunci câmpul tabelului departamentului va fi nul în rezultat.

5. Alătura exterioară dreaptă

Întoarcerile RIGHT OUTER JOIN conțin toate rândurile din tabela RIGHT (în conformitate cu condiția specificată în ON) și din cealaltă tabelă doar acele rânduri în care condiția unită este adevărată.

Sintaxă:

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

Cuvântul cheie RIGHT OUTER JOIN, folosește drept RIGHT JOIN în unele alte baze de date.

Diagrama de mai jos reprezintă reprezentarea vizuală a ÎNTREPRINDERII RIGHT OUTER, la fel ca în diagramă întoarcerea zonei umbrate ca rezultat al JUNCULUI Oracle RIGHT OUTER JOIN.

Oracle RIGHT OUTER JOIN returnează toate înregistrările de la t2 și de la intersecția înregistrărilor t1 și t2 ca urmare.

Exemplu:

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

Acest exemplu de mai sus Oracle LEFT OUTER JOIN va returna toate rândurile din tabela departamentului și din tabelul angajaților numai acele rânduri în care condiția unită este adevărată. Tabelele angajaților în care se potrivește valoarea _id a angajatului atât în ​​tabelele de angajat cât și în cele de departament.

Dacă valoarea angajatului _id din tabelul angajaților se potrivește în tabelul departamentului, atunci câmpul tabelului angajaților va fi nul în rezultat.

6. Alătura exterioară completă

Returnările Full Outer Join conțin toate rândurile din tabela LEFT și RIGHT, cu null în câmpurile în care condiția de unire nu este adevărată.

Sintaxă:

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

Cuvântul cheie FULL OUTER JOIN, folosește ca FULL JOIN în unele alte baze de date.

Diagrama de mai jos reprezintă reprezentarea vizuală a FULL OUTER JOIN, la fel ca în diagrama întoarcerea zonei umbrate ca urmare a Oracle FULL OUTER JOIN.

Oracle FULL OUTER JOIN returnează toate înregistrările din tabelele t1 și t2 ca urmare.

Exemplu:

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

Acest exemplu de mai sus Oracle FULL OUTER JOIN va returna toate rândurile de la tabelul angajaților și de la tabelul de departament cu valori nule în care condiția unită nu este adevărată.

7. Oracle Self Joins

În auto join the table se folosește de două ori în clauza FROM cu ajutorul numelor de pseudonime de tabel. Cu alte cuvinte, sinele se alătură, se alătură unei mese în sine. Oracle Self Join combină și returnează rândurile tabelului în care condiția de unire este adevărată.

Exemplu:

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;

Acest exemplu de mai sus de Oracle Self JOIN va returna toate rândurile din tabelul angajaților unde condiția unită este adevărată.

8. Oracle Cross se alătură (numite și produse carteziene)

Încrucișarea se aplică în cazul în care cele două tabele nu au condiție de unire. Încrucișarea reîntoarce produsul cartezian al celor două tabele, produs cartezian unde fiecare rând al unei tabele se combină cu fiecare rând al celuilalt tabel. Să presupunem că tabelul1 conține 100 de rânduri și tabelul2 conține 10 rânduri, apoi rezultatul de alăturare ar conține 1000 de rânduri.

Exemplu;

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

Acest exemplu cruce de mai sus JOIN va returna toate rândurile de tabel de angajați combinate cu toate rândurile tabelului de departament.

9. Oracle Anti Joins

Returnările antijoin conțin rânduri din tabelul LEFT (în conformitate cu specificația din condiția ON) unde condiția unită este adevărată.

Exemplu:

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';

Acest exemplu de mai sus Oracle ANTI JOIN va întoarce rândurile din tabelul angajaților și unde condiția alăturată este adevărată.

10. Oracle Semi Joins

Returnările semijoin conțin rânduri unice din tabelul LEFT (în conformitate cu specificația din condiția ON) în care se potrivește o subcontestare EXISTS.

Exemplu:

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

Acest exemplu de mai sus Oracle SEMI JOIN va întoarce rândurile din tabelul angajaților dacă EXISTE revine adevărat.

Concluzie

Este folosit pentru accesarea datelor din mai multe tabele. Există șapte tipuri diferite de uniri într-un Oracle.

Articole recomandate

Acesta este un ghid pentru Joins in Oracle. Aici vom discuta despre o introducere despre Joins in Oracle și despre cele 10 tipuri diferite în Joins in Oracle. Puteți parcurge și alte articole conexe pentru a afla mai multe -

  1. Tipuri de uniri în SQL
  2. Tableau se alătură
  3. Oracle Warehouse Builder
  4. Oracle String Functions
  5. Ce este o interogare și tipuri de interogări Oracle
  6. Top 6 tipuri de uniri în MySQL cu exemple
  7. Ghidul principalelor 9 clauze Oracle (exemplu) l
  8. SELECTĂ în MySQL | Exemple de SELECT în MySQL

Categorie: