Mit zunehmender Datenmenge in der Datenbank werden die Beziehungen zwischen Tabellen immer komplexer. Wenn wir Daten aus einigen verwandten Tabellen abfragen müssen, ist die Verwendung der zugehörigen Abfrage von Oracle eine sehr effektive Methode. In diesem Artikel wird erläutert, wie Sie Oracle-Abfragetabellen mit relationalen Tabellen verwenden.
In Oracle gehören zu den häufig verwendeten relationalen Abfragemethoden Inner Join, Left Join, Right Join und Full Outer Join.
Lassen Sie uns zunächst die Verwendung von Inner Joins vorstellen. Ein Inner Join bedeutet, dass nur Zeilen mit übereinstimmenden Daten in beiden Tabellen zurückgegeben werden. Wenn wir beispielsweise die Schnittdaten in der Kundentabelle (Kunde) und der Bestelltabelle (Bestellung) finden möchten, also die Kundeninformationen der Bestellung in der Kundentabelle, können wir die folgende SQL-Anweisung zur Abfrage verwenden:
SELECT a.customer_id, a.customer_name, b.order_id, b.order_date FROM customer a INNER JOIN order b ON a.customer_id = b.customer_id;
In der obigen SQL-Anweisung ist die Kundentabelle über das Schlüsselwort INNER JOIN mit der Bestelltabelle verknüpft, und die Zuordnungsbedingung besteht darin, dass die Felder customer_id in den beiden Tabellen gleich sind. Die Felder in der SELECT-Klausel sind die Kundennummer und der Kundenname in der Kundentabelle sowie die Bestellnummer und das Bestelldatum in der Bestelltabelle.
Lassen Sie uns nun die Verwendung von Left Join vorstellen. Ein Left-Join gibt alle Zeilen in der linken Tabelle und die Zeilen in der rechten Tabelle zurück, die mit der linken Tabelle übereinstimmen. Wenn in der rechten Tabelle keine passenden Daten vorhanden sind, wird ein NULL-Wert zurückgegeben. Wenn wir beispielsweise alle Kundeninformationen und ihre Bestellinformationen finden möchten, auch wenn sie keine Bestellungen haben, können wir die folgende SQL-Anweisung zur Abfrage verwenden:
SELECT a.customer_id, a.customer_name, b.order_id, b.order_date FROM customer a LEFT JOIN order b ON a.customer_id = b.customer_id;
In der obigen SQL-Anweisung sind die Kundentabelle und die Bestelltabelle über das Schlüsselwort LEFT JOIN verbunden. Die Felder in der SELECT-Klausel sind außerdem die Kundennummer und der Kundenname in der Kundentabelle sowie die Bestellnummer und das Bestelldatum in der Bestelltabelle. Beachten Sie hier, dass, da das Schlüsselwort LEFT JOIN bestimmt, alle Zeilen in der linken Tabelle zurückzugeben, die entsprechende Bestellnummer und das Bestelldatum als NULL-Werte zurückgegeben werden, wenn es Kundeninformationen gibt, die keiner Bestellung in der Kundentabelle entsprechen.
Dann stellen wir die Verwendung von Right Join vor. Ein rechter Join gibt alle Zeilen in der rechten Tabelle und die Zeilen in der linken Tabelle zurück, die mit der rechten Tabelle übereinstimmen. Wenn in der linken Tabelle keine passenden Daten vorhanden sind, wird ein NULL-Wert zurückgegeben. Wenn wir beispielsweise alle Bestellinformationen und deren Kundeninformationen finden möchten, können wir die folgende SQL-Anweisung zur Abfrage verwenden, auch wenn in der Kundentabelle keine diesen Bestellungen entsprechenden Kundeninformationen vorhanden sind:
SELECT a.customer_id, a.customer_name, b.order_id, b.order_date FROM customer a RIGHT JOIN order b ON a.customer_id = b.customer_id;
In der obigen SQL-Anweisung , die Kundentabelle und die Bestelltabelle übergeben die Schlüsselwortzuordnung RIGHT JOIN. Die Felder in der SELECT-Klausel sind außerdem die Kundennummer und der Kundenname in der Kundentabelle sowie die Bestellnummer und das Bestelldatum in der Bestelltabelle. Beachten Sie hier, dass, da das Schlüsselwort RIGHT JOIN bestimmt, alle Zeilen in der rechten Tabelle zurückzugeben, die entsprechende Kundennummer und der entsprechende Kundenname als NULL-Werte zurückgegeben werden, wenn Bestellinformationen vorhanden sind, die nicht dem Kunden in der Bestelltabelle entsprechen.
Lassen Sie uns abschließend die Verwendung vollständiger externer Verknüpfungen vorstellen. Der vollständige äußere Join bezieht sich auf Links- und Rechts-Joins zwischen der linken und der rechten Tabelle und gibt alle Zeilen zurück. Wenn in der linken Tabelle keine übereinstimmenden Daten vorhanden sind, wird ein NULL-Wert zurückgegeben. Wenn in der rechten Tabelle keine übereinstimmenden Daten vorhanden sind, wird ebenfalls ein NULL-Wert zurückgegeben. Wenn wir beispielsweise alle Kundeninformationen und deren Bestellinformationen finden möchten, unabhängig davon, ob in der Kundentabelle und der Bestelltabelle übereinstimmende Daten vorhanden sind, können wir die folgende SQL-Anweisung zur Abfrage verwenden:
SELECT a.customer_id, a.customer_name, b.order_id, b.order_date FROM customer a FULL OUTER JOIN order b ON a.customer_id = b.customer_id;
In der obigen SQL-Anweisung die Kundentabelle und die Bestelltabelle, die über das Schlüsselwort FULL OUTER JOIN verknüpft sind. Die Felder in der SELECT-Klausel sind außerdem die Kundennummer und der Kundenname in der Kundentabelle sowie die Bestellnummer und das Bestelldatum in der Bestelltabelle. Beachten Sie hier, dass, da das Schlüsselwort FULL OUTER JOIN bestimmt, alle Zeilen in der linken und rechten Tabelle zurückzugeben, die entsprechenden Felder NULL-Werte zurückgeben, wenn in der Kundentabelle oder Bestelltabelle keine entsprechenden Daten vorhanden sind.
Durch die Einleitung dieses Artikels glaube ich, dass Sie die Methode verwandter Tabellen in Oracle-Abfragetabellen beherrschen. In praktischen Anwendungen kann die Auswahl der geeigneten Korrelationsabfragemethode entsprechend den Anforderungen die Abfrageeffizienz verbessern und unnötige Abfrageergebnisse reduzieren.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Oracle-Abfragetabellen mit verwandten Tabellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!