Stored Procedures und Funktionen
Topic outline
-
1. Definition und Nutzung:
- Eine Stored Procedure ist eine Sammlung von SQL-Befehlen, die als Einheit ausgeführt werden kann.
- Sie werden verwendet, um eine Reihe von SQL-Anweisungen zu gruppieren und auszuführen.
2. Rückgabewert:
- Stored Procedures müssen keinen Wert zurückgeben. Sie können jedoch mehrere Werte über OUT-Parameter oder INOUT-Parameter zurückgeben.
3. Einsatz von DML-Befehlen:
- Stored Procedures können DML-Befehle wie INSERT, UPDATE, DELETE und SELECT enthalten und ausführen.
- Sie können auch DDL-Befehle (Data Definition Language) wie CREATE, ALTER und DROP enthalten.
4. Aufruf:
- Stored Procedures werden mit dem `CALL` Befehl aufgerufen.
5. Transaktionen:
- Stored Procedures können Transaktionen initiieren, committen oder zurücksetzen, was sie ideal für komplexe Geschäftslogik macht.
6. Seiteneffekte:
- Stored Procedures können Seiteneffekte haben, wie das Ändern von Datenbankzuständen. -
1. Definition und Nutzung:
- Eine Funktion ist eine vordefinierte Operation, die einen Wert basierend auf den Eingabewerten zurückgibt.
- Funktionen werden oft verwendet, um Berechnungen durchzuführen oder Werte zu formatieren.
2. Rückgabewert:
- Funktionen müssen einen Wert zurückgeben. Dies kann ein skalaren Wert oder ein Tabellentyp sein.
3. Einsatz von DML-Befehlen:
- Funktionen dürfen in der Regel keine DML-Befehle wie INSERT, UPDATE oder DELETE enthalten. Sie dürfen nur SELECT-Befehle verwenden.
- MySQL hat hier strikte Einschränkungen, um die Deterministik und Seiteneffekte zu minimieren.
4. Aufruf:
- Funktionen können in SQL-Anweisungen wie SELECT, WHERE oder FROM verwendet werden. Sie können auch als Teil von Ausdrücken aufgerufen werden.
5. Transaktionen:
- Funktionen können keine Transaktionen initiieren, committen oder zurücksetzen.
6. Seiteneffekte:
- Funktionen sollten keine Seiteneffekte haben und nur Berechnungen basierend auf den Eingabewerten durchführen.
-
-
Zusammenfassung der Unterschiede:
- Rückgabewert: Funktionen müssen einen Wert zurückgeben, Stored Procedures müssen dies nicht.
- Einsatz von DML-Befehlen: Stored Procedures können DML- und DDL-Befehle enthalten, Funktionen sind auf SELECT-Befehle beschränkt.
- Aufruf: Stored Procedures werden mit `CALL` aufgerufen, Funktionen können innerhalb von SQL-Anweisungen verwendet werden.
- Transaktionen: Stored Procedures können Transaktionen handhaben, Funktionen nicht.
- Seiteneffekte: Stored Procedures können Seiteneffekte haben, Funktionen sollen keine haben.
Beide, Stored Procedures und Funktionen, haben ihre eigenen spezifischen Anwendungsfälle und sollten entsprechend verwendet werden, um die beste Leistung und Wartbarkeit der MySQL-Datenbank zu gewährleisten.
-
-