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

Black Friday: Vorsicht vor schädlichen QR-Codes

Bösartige QR-Codes, die per E-Mail versendet werden, eignen sich sehr gut, um Spam-Filter zu umgehen.

1 Tag ago

Black Friday: Zahl der ominösen Shopping-Websites steigt

Unsichere Websites und Phishing-Mails in Verbindung mit Black Friday können kauffreudigen Konsumenten zum Verhängnis werden.

1 Tag ago

SmokeBuster bekämpft SmokeLoader

Malware SmokeLoader wird weiterhin von Bedrohungsakteuren genutzt, um Payloads über neue C2-Infrastrukturen zu verbreiten.

1 Tag ago

Taugen Kryptowährungen als Unterstützer der Energiewende?

Bankhaus Metzler und Telekom-Tochter MMS testen, inwieweit Bitcoin-Miner das deutsche Stromnetz stabilisieren könnten.

2 Tagen ago

Supercomputer-Ranking: El Capitan überholt Frontier und Aurora

Mit 1,7 Exaflops ist El Capitan nun der dritte Exascale-Supercomputer weltweit. Deutschland stellt erneut den…

2 Tagen ago

Ionos führt neue AMD-Prozessoren ein

Der deutsche Hyperscaler erweitert sein Server-Portfolio um vier Angebote mit den neuen AMD EPYC 4004…

2 Tagen ago