Skalare Unterabfragen vereinfachen komplexe SQL-Ausdrücke

Oracle war lange ein Verfechter der Idee von „In-line Views“, wobei eine Unterabfrage innerhalb der FROM-Klausel platziert werden kann, praktisch so, als wäre sie der Name einer Tabelle. Hier ein Beispiel für eine Oracle-Abfrage, die den Speicherplatz der einzelnen Tabellen anzeigt (Listing A).

Listing B zeigt das Ergebnis dieser In-line View-Abfrage gegen das Datenverzeichnis.

Im Beispiel-Listing A sind die SQL-Unterabfragen innerhalb der FROM-Klausel platziert, und es werden ihnen die Aliase df und fs zugewiesen. Auf die Werte der df- und fs-Unterabfragen wird dann innerhalb der SELECT-Klausel zugegriffen. Wenn man sich diese Abfrage genauer anschaut, sieht man, dass sie zwei Bereiche von Werten aus zwei Tabellen addiert und vergleicht, und das alles in einer einzigen Abfrage. Einigen Lesern dürfte eine SQL-Abfrage innerhalb der FROM-Klausel recht merkwürdig vorkommen, aber das ist noch nichts im Vergleich zu skalaren Unterabfragen! Eine skalare Unterabfrage geht weit über die In-line Views hinaus, wobei SQL-Unterabfragen innerhalb der SELECT-Klausel platziert werden können. Lassen Sie uns einige Beispiele betrachten.

Beispiele für skalare Unterabfragen

Wenn man sich erst einmal mit der Syntax vertraut gemacht hat, wird man feststellen, dass skalare Unterabfragen sehr leistungsfähig sind. Skalare Unterabfragen sind besonders nützlich für die Zusammenfassung mehrere Abfragen zu einer einzigen. Listing C verwendet skalare Unterabfragen zur Berechnung unterschiedlicher Arten von Gruppenfunktionen (max und avg), alles mit einem einzigen SQL-Ausdruck. Beachten Sie, dass diese Abfrage sowohl skalare Unterabfragen als auch In-line Views verwendet.

Skalare Unterabfragen sind ebenfalls nützlich, wenn man Werte in Tabellen einfügen will, die auf Werten aus anderen Tabellen basieren. In Listing D verwenden wir eine skalare Unterabfrage, um den maximalen Kreditrahmen für BILL zu berechnen und diesen Wert in die Tabelle max_credit einzufügen.

Die skalare Unterabfrage in Listing D ist sehr nützlich für Oracle Data Warehouse-Anwendungen. In einem Oracle Data Warehouse ist es üblich, dass der DBA bestimmte Werte schon im Vorfeld mithilfe von Gruppenfunktionen zusammenfasst, um die Abfrage-Geschwindigkeit zu erhöhen. Skalare Unterabfragen sind ein leistungsfähiger Helfer bei dieser Aufgabe. In Listing E füllen wir die Tabelle emp_salary_summary mit vielen Arten von zusammengefassten Werten aus den zugrunde liegenden Tabellen.

Page: 1 2

ZDNet.de Redaktion

Recent Posts

Neue Backdoor: Bedrohung durch Malvertising-Kampagne mit MadMxShell

Bisher unbekannter Bedrohungsakteur versucht über gefälschte IP Scanner Software-Domänen Zugriff auf IT-Umgebungen zu erlangen.

1 Tag ago

BSI-Studie: Wie KI die Bedrohungslandschaft verändert

Der Bericht zeigt bereits nutzbare Angriffsanwendungen und bewertet die Risiken, die davon ausgehen.

2 Tagen ago

KI-Wandel: Welche Berufe sich am stärksten verändern

Deutsche sehen Finanzwesen und IT im Zentrum der KI-Transformation. Justiz und Militär hingegen werden deutlich…

2 Tagen ago

Wie ein Unternehmen, das Sie noch nicht kennen, eine Revolution in der Cloud-Speicherung anführt

Cubbit ist das weltweit erste Unternehmen, das Cloud-Objektspeicher anbietet. Es wurde 2016 gegründet und bedient…

2 Tagen ago

Dirty Stream: Microsoft entdeckt neuartige Angriffe auf Android-Apps

Unbefugte können Schadcode einschleusen und ausführen. Auslöser ist eine fehlerhafte Implementierung einer Android-Funktion.

2 Tagen ago

Apple meldet Umsatz- und Gewinnrückgang im zweiten Fiskalquartal

iPhones und iPads belasten das Ergebnis. Außerdem schwächelt Apple im gesamten asiatischen Raum inklusive China…

2 Tagen ago