Introduzione a Join in Oracle

I join in Oracle vengono utilizzati per accedere ai dati da più tabelle. Un join in Oracle viene utilizzato in un luogo in cui devono essere unite più di due tabelle per raccogliere le informazioni utili nell'istruzione Oracle SQL. In altre parole, la query di join utilizzata per recuperare le righe da più di due tabelle o viste in base alle condizioni di join. La condizione di join può essere specificata nella clausola FROM o nella clausola where. La condizione di join confronta le colonne delle diverse tabelle e recupera quelle righe per le quali la condizione di join è vera.

Tipi di join in Oracle

In Oracle ci sono dieci diversi tipi di join come indicato di seguito:

  • Inner Joins (noto anche come Simple Joins)
  • Equi Joins
  • Join esterni
  • Left Outer Joins (chiamato anche come Left Joins)
  • Right Outer Joins (chiamato anche come Right Joins)
  • Full Outer Joins (anche chiamato Full Joins)
  • Iscrizioni personali
  • Cross Joins (anche chiamati prodotti cartesiani)
  • Anti Joins
  • Semi Joins

Successivamente, comprendiamo ogni join in dettaglio con la sintassi e gli esempi.

1. INNER JOIN (noto anche come Simple Join)

I join interni si uniscono a più tabelle e restituiscono quelle righe per le quali la condizione di join è vera. Il join interno è il join più comune tra i tipi di join.

Sintassi:

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

Il diagramma seguente rappresenta la rappresentazione visiva del join interno, poiché nel diagramma l'area ombreggiata ritorna come risultato di Oracle INNER JOIN:

Come risultato, Oracle INNER JOIN restituisce i record di intersezione di t1 e t2.

Esempio:

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

Questo esempio Oracle INNER JOIN sopra riportato restituirà tutte le righe dalle tabelle dei dipendenti e dei reparti in cui il valore dei dipendenti _id nelle tabelle dei dipendenti e dei reparti corrisponde.

2. Equi Joins

Oracle Equi Joins recupera i valori delle colonne corrispondenti delle tabelle multiple. La condizione di join o l'operatore di confronto presente nella clausola WHERE dell'istruzione select.

Sintassi:

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

Il diagramma seguente rappresenta la rappresentazione visiva dell'equijoin, poiché nel diagramma l'area ombreggiata ritorna come risultato del Oracle Equi Join.

Di conseguenza, Oracle Equijoin restituisce i record di intersezione di t1 e t2.

Esempio:

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

Questo esempio Oracle Equijoin sopra restituirà tutte le righe dalle tabelle dei dipendenti e dei reparti in cui il valore dei dipendenti _id nelle tabelle dei dipendenti e dei reparti corrisponde.

3. Join esterni

Un altro tipo di join è un join esterno che restituisce il risultato di un join interno più tutte le righe di una tabella per le quali la condizione di join non è vera.

Sintassi:

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

Esistono tre tipi di join esterno come indicato di seguito:

  • Left Outer Joins (chiamato anche come Left Joins)
  • Right Outer Joins (chiamato anche come Right Joins)
  • Full Outer Joins (anche chiamato Full Joins)

4. Join esterno sinistro

I ritorni Join esterno sinistro contengono tutte le righe della tabella LEFT (in base alla condizione ON specificata) e dall'altra tabella solo quelle righe in cui la condizione unita è vera.

Sintassi:

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

La parola chiave LEFT OUTER JOIN, utilizza una LEFT JOIN in alcuni altri database.

Il diagramma seguente rappresenta la rappresentazione visiva di LEFT OUTER JOIN, poiché nel diagramma l'area ombreggiata ritorna come risultato di Oracle LEFT OUTER JOIN:

Come risultato, Oracle LEFT OUTER JOIN restituisce tutti i record da t1 e i record di intersezione di t1 e t2.

Esempio:

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

L'esempio Oracle LEFT OUTER JOIN sopra riportato restituirà tutte le righe dalla tabella dei dipendenti e dalla tabella dei dipartimenti solo quelle righe in cui la condizione unita è vera. Le tabelle dei dipartimenti in cui il valore _id del dipendente sia nella tabella dei dipendenti che dei dipartimenti corrisponde.

Se il valore _id del dipendente nella tabella dei dipendenti corrisponde nella tabella dei dipartimenti, i campi della tabella dei dipartimenti saranno nulli nel risultato.

5. Join esterno destro

I ritorni RIGHT OUTER JOIN contengono tutte le righe dalla tabella DESTRA (in base alla condizione ON specificata) e dall'altra tabella solo quelle righe in cui la condizione unita è vera.

Sintassi:

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

La parola chiave RIGHT OUTER JOIN, utilizzare come RIGHT JOIN in alcuni altri database.

Il diagramma seguente rappresenta la rappresentazione visiva di RIGHT OUTER JOIN, poiché nel diagramma l'area ombreggiata ritorna come risultato di Oracle RIGHT OUTER JOIN.

Come risultato, Oracle RIGHT OUTER JOIN restituisce tutti i record da t2 e i record di intersezione di t1 e t2.

Esempio:

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

Questo esempio di Oracle LEFT OUTER JOIN sopra riportato restituirà tutte le righe dalla tabella dei dipartimenti e dalla tabella dei dipendenti solo quelle righe in cui la condizione unita è vera. Le tabelle dei dipendenti in cui il valore del dipendente _id nelle tabelle dei dipendenti e dei reparti corrisponde.

Se il valore _id del dipendente nella tabella dei dipendenti corrisponde nella tabella dei dipartimenti, i campi della tabella dei dipendenti saranno nulli nel risultato.

6. Join esterno completo

I ritorni di Join esterno completo contengono tutte le righe della tabella LEFT e della tabella RIGHT con null nei campi in cui la condizione di join non è vera.

Sintassi:

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

La parola chiave FULL OUTER JOIN, utilizzare come FULL JOIN in alcuni altri database.

Il diagramma seguente rappresenta la rappresentazione visiva di FULL OUTER JOIN, poiché nel diagramma l'area ombreggiata ritorna come risultato di Oracle FULL OUTER JOIN.

Di conseguenza, Oracle FULL OUTER JOIN restituisce tutti i record dalle tabelle t1 e t2 di conseguenza.

Esempio:

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

L'esempio Oracle FULL OUTER JOIN sopra riportato restituirà tutte le righe dalla tabella dei dipendenti e dalla tabella dei dipartimenti con valori nulli in cui la condizione unita non è vera.

7. Oracle Self Joins

In self join la tabella utilizza due volte nella clausola FROM con l'aiuto del nome di alias di tabella. In altre parole, il sé si unisce, si unisce a un tavolo stesso. Oracle Self Join combina e restituisce righe della tabella in cui la condizione di join è vera.

Esempio:

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;

Questo esempio di Oracle self JOIN sopra restituirà tutte le righe dalla tabella dei dipendenti in cui la condizione unita è vera.

8. Oracle Cross Joins (anche chiamato prodotti cartesiani)

Il join incrociato si applica quando le due tabelle non hanno alcuna condizione di join. Il join incrociato restituisce il prodotto cartesiano delle due tabelle, prodotto cartesiano in cui ciascuna riga di una tabella si combina con ogni riga dell'altra tabella. Supponiamo che table1 contenga 100 righe e table2 contenga 10 righe, quindi il risultato del join conterrà 1000 righe.

Esempio;

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

Questo esempio di JOIN incrociato sopra restituirà tutte le righe della tabella dei dipendenti combinate con tutte le righe della tabella dei dipartimenti.

9. Oracle Anti Joins

I ritorni antijoin contengono righe dalla tabella LEFT (in base alla condizione ON specificata) in cui la condizione unita è vera.

Esempio:

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

Questo esempio Oracle ANTI JOIN sopra restituirà le righe dalla tabella dei dipendenti e dove la condizione unita è vera.

10. Oracle Semi Joins

I ritorni semijoin contengono righe univoche dalla tabella LEFT (in base alla condizione ON specificata) in cui la corrispondenza di una sottoquery EXISTS è vera.

Esempio:

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

Questo esempio di Oracle SEMI JOIN sopra restituirà le righe dalla tabella dei dipendenti se EXISTS restituisce true.

Conclusione

Viene utilizzato per accedere ai dati da più tabelle. Esistono sette diversi tipi di join in un Oracle.

Articoli consigliati

Questa è una guida a Join in Oracle. Qui discutiamo un'introduzione su Joins in Oracle e i suoi 10 diversi tipi in Joins in Oracle. Puoi anche consultare i nostri altri articoli correlati per saperne di più -

  1. Tipi di join in SQL
  2. Tableau Joins
  3. Oracle Warehouse Builder
  4. Funzioni stringa Oracle
  5. Che cos'è una query e tipi di query Oracle
  6. I 6 migliori tipi di join in MySQL con esempi
  7. Guida alle prime 9 clausole Oracle (esempio) l
  8. SELEZIONA in MySQL | Esempi da SELEZIONARE in MySQL

Categoria: