? Oracle ist ein kommerzielles relationales Datenbank-Managementsystem . Wie bei anderen großen RDBMS , verwendet es die Structured Query Language für die Pflege der Datenbank , Administration und Programmierung. Die SQL-Sprache können Sie erstellen anspruchsvolle Datenbank-Abfragen für Reporting, Hinzufügen und Ändern von Daten in der Datenbank . Diese Abfragen können gehören korrelierte Sub-Queries , in denen die Daten aus dem sub-Abfrage hängt von der Haupt- Abfrage. SQL Abfragen
Eine SQL-Abfrage ist eine Aussage, die Daten prüft in der Datenbank und nutzt sie, um einen Bericht zu erstellen oder die Datenbank zu aktualisieren . Eine der einfachsten Abfragen ist eine Liste von Datensätzen in einer Datenbank-Tabelle . Es sieht aus wie die folgende SQL-Anweisung :
SELECT * FROM Kunden ;
Diese Abfrage erzeugt eine unsortierte Liste aller Informationen in der Tabelle "Customers" , Datensatz für Datensatz . Indem Sie die leistungsfähigen WHERE-Klausel Sie selektive Abfragen, die die Daten und die Liste nur die Datensätze der Klausel passenden Kriterien zu bewerten erstellen:
SELECT * FROM Kunden WHERE State = ' CA' ;
Abfrage listet nur Kunden aus Kalifornien. Die WHERE-Klausel beherbergt sehr komplexen Bedingungen , einschließlich der Ergebnisse der korrelierte Sub-Queries , für Sie nur die Daten, die Sie wollen .
Sub -Abfragen
A sub-Abfrage ist eine Abfrage, in der der WHERE-Klausel selbst hat seine eigene Abfrage. Dies ist ein bequemer Weg, um Informationen aus verschiedenen Datenbanktabellen zu kombinieren, um komplexere Ergebnisse zu produzieren. Die folgende Abfrage erstellt eine Liste der nur jene Kunden, die Bestellungen aufgegeben haben im Jahr 2011:
SELECT * FROM Kunden WHERE customer_code IN ( SELECT FROM Bestellungen WHERE customer_code order_date zwischen '1 /1/2011 'AND '12 /31 /2011 ');
Hinweis , dass dies eine Abfrage in einer Abfrage ist . Die SELECT-Anweisung in Klammern erzeugt eine Liste von Kunden- Codes aus der " Bestellungen " Tisch. Die äußere Abfrage verwendet die Kunden -Codes , um eine Liste von Kundennamen, Adressen und andere Informationen zu produzieren. Dies ist ein Sub- Abfrage , aber nicht eine koordinierte sub-Abfrage ; . Obwohl die äußere Abfrage hängt von der inneren, eine koordinierte sub-Abfrage auch eine innere Abfrage, die auf der äußeren , hängt
korrelierte Sub - Queries
In einer korrelierten Unterabfrage hängt jede Abfrage auf der anderen . Die folgende Oracle SQL-Anweisung erstellt eine Liste von Kunden- Codes , Namen und Summen Kauf für diejenigen Kunden , deren Kauf Beträge fallen unter dem Durchschnitt für alle Kunden in einem Zustand . Sie haben dann zwei voneinander abhängige Abfragen , eine, die die Kunden führt , muss aber den durchschnittlichen Umsatz gegenüber dem zu vergleichen , und die andere , die durchschnittliche berechnet , muss aber den Staat. Beachten Sie die Verwendung des Tabellenaliasen "C1 " und " C2 . " The alias " c1 " bezieht sich auf die Customer-Tabelle in der äußeren Abfrage , und "C2" ist die Customer-Tabelle in der inneren Abfrage .
SELECT customer_code , name, total_purchases , Zustand FROM Kunden WHERE c1 Total_ Käufe < ( SELECT avg ( Total_ Käufe) FROM Kunden WHERE c2 = c1.state c2.state );
Nutzungsbedingungen
< br >
korrelierte Sub-Queries stellen eine nützliche Methode für die Auswahl der Informationen aus Tabellen, in denen Sie bedingte Sub- Abfragen mit der WHERE-Klausel , und das Kriterium für die innere Abfrage kommt aus dem äußeren erfordern . Wie bei dem Beispiel sub-Abfrage , funktioniert die Methode gut, wenn die innere Abfrage generiert einen Gesamtbetrag , wie beispielsweise ein Mittelwert , Summe, Minimum oder Maximum , gegen die Ihre äußere Abfrage vergleicht . Sie können Korrelation beigetreten Sätze von Tabellen sowie einzelne Tabellen verwenden .