Stored Procedures
Unterabfragen & Fortgeschrittenes
Bedeutung
Eine Stored Procedure (gespeicherte Prozedur) ist ein benannter SQL-Codeblock, der in der Datenbank abgelegt und später per Aufruf ausgeführt wird. So musst du häufig genutzte Abfragen nicht jedes Mal neu schreiben. Prozeduren können Parameter entgegennehmen und mehrere Anweisungen bündeln.
Anlegen: CREATE PROCEDURE
CREATE PROCEDURE KundenNachLand (IN land_param VARCHAR(2)) BEGIN SELECT Name, Stadt FROM Kunden WHERE Land = land_param; END;
Hier ist land_param ein Eingabeparameter (IN). Es gibt auch OUT-Parameter für Rückgabewerte und INOUT für beides.
Aufrufen: CALL bzw. EXEC
In MySQL und PostgreSQL rufst du eine Prozedur mit CALL auf, in SQL Server mit EXEC:
CALL KundenNachLand('DE'); -- MySQL / PostgreSQL
EXEC KundenNachLand @land='DE'; -- SQL Server
| Name | Stadt |
|---|---|
| Müller GmbH | Berlin |
| Schmidt AG | Hamburg |
Beispiel mit OUT-Parameter
CREATE PROCEDURE AnzahlKunden (OUT anzahl INT) BEGIN SELECT COUNT(*) INTO anzahl FROM Kunden; END;
Dialektunterschiede
- MySQL: braucht beim Anlegen oft ein geändertes Trennzeichen (
DELIMITER), Aufruf mitCALL. - SQL Server: nutzt
ASstattBEGIN…ENDals Rahmen undEXECzum Ausführen. - PostgreSQL: trennt zwischen
FUNCTIONundPROCEDURE; Logik steckt meist in PL/pgSQL.
Womit ruft man in MySQL eine Stored Procedure auf?
Hinweis
Stored Procedures kapseln Logik nah an den Daten und können den Netzwerkverkehr reduzieren. Übergib Werte immer als Parameter – so bleibt der Code sicher und wiederverwendbar.