Rückgabewerte in SQL [] (Rückgabewerte in SQL), Lektion, Seite 723281
https://www.purl.org/stefan_ram/pub/rueckgabewerte_sql (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
SQL-Kurs

Rückgabewerte in SQL

Der folgende Ausdruck hat eine mehr oder weniger zufällig ausgewählte double-Zahl zwischen 0 (einschließlich) und 1 (ausschließlich) als Wert.

Ausdruck
RAND()
Wert (Beispiel)
0.901730651875707

Wenn der Aufrufausdruck »RAND()« in den Ausdruckrahmen geschrieben wird, so wird dadurch bestimmt, daß der auszugebende Wert bei der Ausführung der Abfrage von der Auswertung des Ausdrucks »RAND()« ermittelt werden soll.

Ausdruck
RAND()
+ Ausdruckrahmen
SELECT ;
= Abfrage
SELECT RAND();
Ausgabe (Beispiel)
+--------------------+
| RAND() |
+--------------------+
| 0.6539504161607013 |
+--------------------+

Dieser Wert ergibt sich dann dadurch, daß gegen Ende des Aufrufvorgangs von der Funktion »RAND« ein Wert für diesen Aufrufausdruck festgelegt wird. Wegen dieser Festlegung eines Wertes nennt man diesen Vorgang ja auch die Auswertung  (also die Ermittlung des Wertes) des Ausdrucks »RAND()«.

Bei der Auswertung eines Aufrufausdrucks wird die Funktion dieses Ausdrucks aktiviert, wir sagen auch: der Aufruf werde ausgeführt. Dies bedeutet nichts anderes, als daß diese Funktion nun bestimmt, was der Rechner tut. Daher sagt man auch, daß diese Funktion durch die Ausführung des Aufrufs die Kontrolle (über den Rechner) erhält.

Wird die Kontrolle über den Rechner nun von unserem Rahmen an die Funktion »RAND« übergeben, so kehrt die Kontrolle normalerweise nach einer Weile wieder aus dieser Funktion »RAND« zurück. Die Kontrolle wird also von der aufgerufenen Funktion schließlich (an unseren Ausdruckrahmen) zurückgegeben.

Weil gleichzeitig mit dieser Rückkehr auch der Wert des Ausdrucks geliefert wird, sagt man auch, daß er zusammen mit der Kontrolle von der Operation zurückgegeben  werde, und bezeichnet ihn auch als Rückgabewert. (Der Rückgabewert von »RAND« wird danach von unserem Ausdruckrahmen ausgegeben.) Am Ende der Ausführung einer Funktion steht also die Rückgabe der Kontrolle und eines eventuellen Rückgabewertes an jene Stelle, von der aus diese Funktion aufgerufen wurde.

»SELECT« und »RAND()« bei der oben gezeigten Ausführung
.-------------------------------------.
| SELECT-----------. |
| | |
| V |
| .---------------. |
| | RAND() | |
| '---------------' |
| | |
| | |
|<-----------------' |
| 0.6539504161607013 |
| |
'-------------------------------------'

Allgemein bezeichnet man ein aufgerufenes benanntes Programm auch als Unterprogramm  und im Vergleich dazu das aufrufende Programm als Hauptprogramm. In unserem Fall ist die gesamte Abfrage »SELECT RAND();« das Hauptprogramm, während die Funktion »RAND« alleine das Unterprogramm  darstellt. Durch die Auswertung des Aufrufs  des Unterprogramms wird die Kontrolle vorübergehend an das Unterprogramm übergehen, von wo aus sie nach einer Weile wieder zurückkehrt. Bei dieser Rückgabe der Kontrolle kann auch ein Wert an das Hauptprogramm übergeben werden, dies ist der Rückgabewert, welcher dann den Wert des Aufrufausdrucks festlegt, womit dessen Auswertung erledigt ist.

Übergabe und Rückgabe der Kontrolle zur Laufzeit mit Wertrückgabe
.-------------------------------------.
| Hauptprogramm----. |
| | Übergabe der |
| V Kontrolle |
| .---------------. |
| | Unterprogramm | |
| '---------------' |
| | Rückgabe der |
| | Kontrolle |
|<-----------------' |
| Rueckgabewert |
| |
'-------------------------------------'

In dem folgenden Beispiel einer Auswertung des Ausdrucks »RAND()« wurde als auszugebender Wert beispielsweise »0.3169153596432091« festgelegt, also „zurückgegeben“. Der Rückgabewert ist also »0.3169153596432091«.

Konsole
SELECT RAND();
+--------------------+
| RAND() |
+--------------------+
| 0.3169153596432091 |
+--------------------+

In dem folgenden Protokoll einer Auswertung des Ausdrucks »RAND()« ist abzulesen, daß bei der protokollierten Auswertung als auszugebender Wert zur Laufzeit beispielsweise »0.622725580467587« festgelegt, also „zurückgegeben“ wurde. Diesmal  ist der Rückgabewert »0.622725580467587.

Konsole
SELECT RAND();
+-------------------+
| RAND() |
+-------------------+
| 0.622725580467587 |
+-------------------+

Die Rückgabe eines Wertes ist die Übermittlung eines Wertes vom Unterprogramm zum Hauptprogramm, sie erlaubt also eine Mitteilung (Kommunikation) vom Unterprogramm zum Hauptprogramm.

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723281 stefan_ram:723281 Rückgabewerte in SQL Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723281, slrprddef723281, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/rueckgabewerte_sql