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

Abo für Facebook: Verbraucherzentrale NRW klagt erneut gegen Meta

Diesmal geht es um das neue Abomodell für Facebook und Instagram. Die Verbraucherschützer klagen auf…

11 Stunden ago

Jedes zweite Gerät mit Redline-Infostealer infiziert

Infostealer-Infektionen haben laut Kaspersky-Studie zwischen 2020 und 2023 um mehr als das sechsfache zugenommen.

17 Stunden ago

Kaspersky warnt vor kritischen Sicherheitslücken in Cinterion-Modems

Betroffen sind Millionen IoT- und M2M-Geräte Geräte weltweit. Unter anderem können Angreifer per SMS Schadcode…

22 Stunden ago

Google schließt Zero-Day-Lücke in Chrome

Von ihr geht ein hohes Risiko aus. Angreifbar sind Chrome für Windows, macOS und Linux.

4 Tagen ago

KI erkennt Emotionen in echten Sportsituationen

Forschende des KIT haben ein Modell zur Emotionsanalyse entwickelt, das affektive Zustände ähnlich genau wie…

4 Tagen ago

Ermittlern gelingt weiterer Schlag gegen Ransomware-Gruppe LockBit

Sie decken die Identität des Kopfs der Gruppe auf. Britische Behörden fahnden mit einem Foto…

5 Tagen ago