IB Stored Procedure File

Werbung
IT
MYSQL: Stored Procedure
Informationsblatt
Name:
Datum:
Klasse:
Blatt Nr.: 0/0
Lfd. Nr.:
Stored Procedures
Stored Procedures sind SQL-Routinen, die auf dem Datenbankserver gespeichert werden.
Die Datenbank als Speicherort bietet eine Reihe von Vorteilen:
Ein Argument ist der verringerte Netzwerkverkehr. Vom Client zum Server muss nur noch der
Aufruf der Funktion, nicht aber die komplette Datenbankabfrage übertragen werden.
Außerdem können auf Basis der Ergebnismenge bereits auf der Datenbankseite zusätzliche
Aktionen durchgeführt werden, sodass nur noch die relevanten Daten an den Client zurück
übertragen werden. Ein weiteres Argument ist die saubere Trennung von Datenbank- und
Programmlogik. Der Datenbankadministrator hat volle Kontrolle über alle SQL Anfragen und
kann diese nun effizienter warten und pflegen.
Auch kann eine Stored Procedure von verschiedenen Programmen genutzt werden und ist
dementsprechend Wiederverwendbar.
Stored Procedures bieten die Möglichkeit der Absicherung gegenüber SQL Injection, da die
Stored Procedures zusätzliche Befehle zur Ablaufsteuerung und Auswertung erfolgter
Anweisungen enthalten können. Noch besser ist es aber SQL Injection bereits auf
Anwendungs-Ebene vorzubeugen, also bevor die Abfragen an die Datenbank geschickt
werden.
Grundlagen Stored Procedures
Stored Procedures können mehrere SQL Anweisungen zu einer Einheit zusammenfassen. In
Ihnen können Variablen definiert werden, als auch Bedingungen, Schleifen und
Kontrollsturkturen verwendet werden. Der allgemeine Aufbau und Aufruf einer Stored
Procedure lautet:
Aufbau: CREATE PROCEDURE MyProc([<PARAMETERLISTE>])
BEGIN
[<Variablenliste>]
…
END;
Aufruf: CALL MyProc()
Variablen deklarieren
Um Variablen innerhalb der Stored Procedure zu deklarieren, wird das Schlüsselwort
DECLARE verwendet:
Variable: DECLARE variablen_name datatype(size)
DEFAULT default_value;
Mit den Schlüsselworten SET und SELECT INTO kann einer Variablen ein Wert zugewiesen
werden.
Zuweisung: SET variablen_name = value;
SELECT value INTO variablen_name FROM
Tabelle;
Parameterübergabe
Die Parameterübergabe erfolgt hinter dem Funktions - bzw. Procedurenamen in der
Parameterliste.
Parameter: MODE param_name param_type(param_size);
IT
MYSQL: Stored Procedure
Informationsblatt
Name:
Datum:
Klasse:
Blatt Nr.: 0/0
Lfd. Nr.:
MODE: Das kann IN, OUT oder INOUT sein
Verzweigungen:
Syntax einer Wenn-Dann-Verzweigung:
IF:
IF if_expression THEN if_commands
[ELSEIF elseif_expression THEN commands]
[ELSE commands]
END IF;
Syntax einer Fallunterscheidung:
CASE:
CASE case_expression
WHEN when_expression_1 THEN commands
WHEN when_expression_2 THEN commands
...
ELSE commands
END CASE;
Schleifen:
In SQL besteht die Möglichkeit Schleifen zu programmieren. Die Schlüsselworte WHILE und
REPEAT stehen zur Verfügung:
WHILE:
WHILE expression DO
Statements
END WHILE
REPEAT
REPEAT Statements
UNTIL expression
END REPEAT
Um eine Schleife vorzeitig zu verlassen, steht das Schlüsselwort LEAVE zur Verfügung.
Herunterladen