Einführung in Joins in Oracle

Joins in Oracle werden verwendet, um von mehreren Tabellen aus auf die Daten zuzugreifen. Ein Join-in-Oracle wird an einer Stelle verwendet, an der mehr als zwei Tabellen verknüpft werden sollen, um die nützlichen Informationen in der Oracle SQL-Anweisung zu sammeln. Mit anderen Worten, die Join-Abfrage, die zum Abrufen der Zeilen aus mehr als zwei Tabellen oder Ansichten verwendet wird, basiert auf den Join-Bedingungen. Die Join-Bedingung kann in der FROM-Klausel oder in der where-Klausel angegeben werden. Die Join-Bedingung vergleicht die Spalten der verschiedenen Tabellen und ruft die Zeilen ab, für die die Join-Bedingung wahr ist.

Arten von Joins in Oracle

In Oracle gibt es zehn verschiedene Arten von Joins:

  • Inner Joins (auch bekannt als Simple Joins)
  • Equi schließt sich an
  • Outer Joins
  • Left Outer Joins (auch als Left Joins bezeichnet)
  • Right Outer Joins (auch als Right Joins bezeichnet)
  • Vollständige äußere Verknüpfungen (auch als vollständige Verknüpfungen bezeichnet)
  • Selbst verbindet
  • Cross Joins (auch als kartesische Produkte bezeichnet)
  • Anti Joins
  • Semi Joins

Als nächstes verstehen wir, dass jede Verknüpfung detailliert mit der Syntax und den Beispielen verknüpft ist.

1. INNER JOIN (auch bekannt als Simple Join)

Innere Verknüpfungen verknüpfen die mehreren Tabellen und geben die Zeilen zurück, für die die Verknüpfungsbedingung erfüllt ist. Der innere Join ist der häufigste Join unter den Join-Typen.

Syntax:

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

Das folgende Diagramm stellt die visuelle Darstellung des inneren Joins dar, da im Diagramm der schattierte Bereich als Ergebnis des Oracle INNER JOIN zurückgegeben wird:

Der Oracle INNER JOIN gibt als Ergebnis die Schnittmengen von t1 und t2 zurück.

Beispiel:

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

In diesem obigen Oracle INNER JOIN-Beispiel werden alle Zeilen aus den Mitarbeiter- und Abteilungs-Tabellen zurückgegeben, in denen der Wert "employee_id" sowohl in den Mitarbeiter- als auch in den Abteilungs-Tabellen übereinstimmt.

2. Equi tritt bei

Oracle Equi Joins ruft die übereinstimmenden Spaltenwerte der mehreren Tabellen ab. Die Join-Bedingung oder der Vergleichsoperator in der WHERE-Klausel der select-Anweisung.

Syntax:

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

Das folgende Diagramm stellt die visuelle Darstellung des Equijoins dar, da im Diagramm der schattierte Bereich als Ergebnis des Oracle Equi Join zurückgegeben wird.

Der Oracle Equijoin gibt als Ergebnis die Schnittpunktdatensätze von t1 und t2 zurück.

Beispiel:

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

In diesem obigen Oracle Equijoin-Beispiel werden alle Zeilen aus den Mitarbeiter- und Abteilungs-Tabellen zurückgegeben, in denen der Mitarbeiter-ID-Wert sowohl in den Mitarbeiter- als auch in den Abteilungs-Tabellen übereinstimmt.

3. Äußere Verbindungen

Eine andere Art von Verknüpfungen ist eine äußere Verknüpfung, die das Ergebnis einer inneren Verknüpfung plus aller Zeilen aus einer Tabelle zurückgibt, für die die Verknüpfungsbedingung nicht erfüllt ist.

Syntax:

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

Es gibt drei Arten von Outer-Joins:

  • Left Outer Joins (auch als Left Joins bezeichnet)
  • Right Outer Joins (auch als Right Joins bezeichnet)
  • Vollständige äußere Verknüpfungen (auch als vollständige Verknüpfungen bezeichnet)

4. Linke äußere Verbindung

Die Left Outer Join-Rückgaben enthalten alle Zeilen aus der LEFT-Tabelle (gemäß der in ON angegebenen Bedingung) und aus der anderen Tabelle nur die Zeilen, in denen die verknüpfte Bedingung wahr ist.

Syntax:

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

Verwenden Sie für das Schlüsselwort LEFT OUTER JOIN in einigen anderen Datenbanken ein LEFT JOIN.

Das folgende Diagramm stellt die visuelle Darstellung des LEFT OUTER JOIN dar, wie im Diagramm die schattierte Bereichsrückgabe als Ergebnis des Oracle LEFT OUTER JOIN:

Der Oracle LEFT OUTER JOIN gibt als Ergebnis alle Datensätze von t1 und die Schnittdatensätze von t1 und t2 zurück.

Beispiel:

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

In diesem obigen Oracle LEFT OUTER JOIN-Beispiel werden alle Zeilen aus der Employee-Tabelle und aus der Department-Tabelle nur die Zeilen zurückgegeben, in denen die verknüpfte Bedingung erfüllt ist. Die Abteilungs-Tabellen, in denen der Wert von employee_id sowohl in der Mitarbeiter- als auch in der Abteilungs-Tabelle übereinstimmt.

Wenn der Wert für employee _id in der Employee-Tabelle in der Abteilungstabelle übereinstimmt, sind die Felder der Abteilungstabelle im Ergebnis null.

5. Rechte äußere Verbindung

Die RIGHT OUTER JOIN-Rückgaben enthalten alle Zeilen aus der RIGHT-Tabelle (gemäß der in ON angegebenen Bedingung) und aus der anderen Tabelle nur die Zeilen, in denen die verknüpfte Bedingung wahr ist.

Syntax:

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

Das Schlüsselwort RIGHT OUTER JOIN wird in einigen anderen Datenbanken als RIGHT JOIN verwendet.

Das folgende Diagramm stellt die visuelle Darstellung von RIGHT OUTER JOIN dar, wie im Diagramm die schattierte Bereichsrückgabe als Ergebnis von Oracle RIGHT OUTER JOIN.

Der Oracle RIGHT OUTER JOIN gibt als Ergebnis alle Datensätze von t2 und die Schnittdatensätze von t1 und t2 zurück.

Beispiel:

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

In diesem obigen Oracle LEFT OUTER JOIN-Beispiel werden alle Zeilen aus der Abteilungstabelle und aus der Mitarbeitertabelle nur die Zeilen zurückgegeben, in denen die verknüpfte Bedingung erfüllt ist. Die Mitarbeitertabellen, in denen der Wert von employee_id sowohl in der Mitarbeiter- als auch in der Abteilungstabelle übereinstimmt.

Wenn der Wert für employee _id in der Employee-Tabelle in der Department-Tabelle übereinstimmt, sind die Felder der Employee-Tabelle im Ergebnis null.

6. Vollständige äußere Verbindung

Die Full Outer Join-Rückgaben enthalten alle Zeilen aus der Tabelle LEFT und der Tabelle RIGHT mit Null in Feldern, in denen die Join-Bedingung nicht erfüllt ist.

Syntax:

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

Das Schlüsselwort FULL OUTER JOIN wird in einigen anderen Datenbanken als FULL JOIN verwendet.

Das folgende Diagramm stellt die visuelle Darstellung des FULL OUTER JOIN dar, während im Diagramm der schattierte Bereich als Ergebnis des Oracle FULL OUTER JOIN zurückgegeben wird.

Der Oracle FULL OUTER JOIN gibt als Ergebnis alle Datensätze aus den Tabellen t1 und t2 zurück.

Beispiel:

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

In diesem obigen Oracle FULL OUTER JOIN-Beispiel werden alle Zeilen aus der Employee-Tabelle und aus der Department-Tabelle mit Nullwerten zurückgegeben, bei denen die verknüpfte Bedingung nicht erfüllt ist.

7. Oracle Self Joins

Beim Self-Join wird die Tabelle in der FROM-Klausel mit Hilfe des Aliasnamens der Tabelle zweimal verwendet. Mit anderen Worten, das Selbst tritt einem Tisch selbst bei. Der Oracle Self Join kombiniert und gibt Zeilen der Tabelle zurück, in denen die Join-Bedingung erfüllt ist.

Beispiel:

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;

In diesem Beispiel für Oracle Self JOIN werden alle Zeilen aus der Employee-Tabelle zurückgegeben, in denen die verknüpfte Bedingung erfüllt ist.

8. Oracle Cross Joins (auch als kartesische Produkte bezeichnet)

Kreuzverknüpfung gilt, wenn die beiden Tabellen keine Verknüpfungsbedingung haben. Die Kreuzverknüpfung gibt das kartesische Produkt der beiden Tabellen zurück, wobei jede Zeile einer Tabelle mit jeder Zeile der anderen Tabelle kombiniert wird. Angenommen, Tabelle1 enthält 100 Zeilen und Tabelle2 enthält 10 Zeilen, dann würde das Verknüpfungsergebnis 1000 Zeilen enthalten.

Beispiel;

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

In diesem Beispiel für Cross-JOIN werden alle Zeilen der Mitarbeitertabelle zusammen mit allen Zeilen der Abteilungsliste zurückgegeben.

9. Oracle Anti Joins

Die Antijoin-Rückgaben enthalten Zeilen aus der LEFT-Tabelle (gemäß der in ON angegebenen Bedingung), in der die verknüpfte Bedingung wahr ist.

Beispiel:

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

In diesem obigen Oracle ANTI JOIN-Beispiel werden Zeilen aus der Employee-Tabelle zurückgegeben, in denen die verknüpfte Bedingung erfüllt ist.

10. Oracle Semi Joins

Die Semijoin-Rückgaben enthalten eindeutige Zeilen aus der LEFT-Tabelle (gemäß der in ON angegebenen Bedingung), bei denen die Übereinstimmung mit einer EXISTS-Unterabfrage wahr ist.

Beispiel:

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

In diesem obigen Oracle SEMI JOIN-Beispiel werden Zeilen aus der Employee-Tabelle zurückgegeben, wenn EXISTS true zurückgibt.

Fazit

Es wird verwendet, um von mehreren Tabellen aus auf die Daten zuzugreifen. Es gibt sieben verschiedene Arten von Joins in einem Oracle.

Empfohlene Artikel

Dies ist eine Anleitung zu Joins in Oracle. Hier diskutieren wir eine Einführung in Joins in Oracle und seine 10 verschiedenen Typen in Joins in Oracle. Sie können auch unsere anderen verwandten Artikel durchgehen, um mehr zu erfahren -

  1. Arten von Joins in SQL
  2. Tableau schließt sich an
  3. Oracle Warehouse Builder
  4. Oracle String-Funktionen
  5. Was ist eine Abfrage und Arten von Oracle-Abfragen?
  6. Top 6 Arten von Joins in MySQL mit Beispielen
  7. Leitfaden zu den 9 wichtigsten Oracle-Klauseln (Beispiel) l
  8. SELECT in MySQL | Beispiele für SELECT in MySQL

Kategorie: