Frage №17
Verbleibend:
Was ist eine Stored Procedure und wie unterscheidet sie sich von einer Funktion?
Musterantwort
Antwort standardmäßig anzeigen
Stored Procedure:
- Eine Menge von SQL-Befehlen, die auf dem Server zur Wiederverwendung gespeichert werden.
- Kann SELECT-, INSERT-, UPDATE- und DELETE-Operationen ausführen.
- Kann mehrere Ergebnismengen zurückgeben oder gar nichts.
- Kann Eingangs- und Ausgangsparameter haben.
- Kann nicht innerhalb einer SQL-Abfrage aufgerufen werden.
Beispiel für eine Stored Procedure:
MySQL 8.1CREATE PROCEDURE GetEmployeeByID(IN emp_id INT) BEGIN SELECT * FROM employees WHERE id = emp_id; END;
Aufruf der Prozedur:
MySQL 8.1CALL GetEmployeeByID(1);
Funktion (Function):
- Gibt einen einzelnen Wert (skalare Funktion) oder eine Tabelle (Tabellenfunktion) zurück.
- Kann in SQL-Ausdrücken verwendet werden (z. B. in SELECT oder WHERE).
- Muss einen Wert zurückgeben.
- Wird üblicherweise für Berechnungen verwendet und liefert ein deterministisches Ergebnis.
Beispiel für eine Funktion:
MySQL 8.1CREATE FUNCTION GetEmployeeSalary(emp_id INT) RETURNS DECIMAL(10,2) BEGIN DECLARE salary DECIMAL(10,2); SELECT e.salary INTO salary FROM employees e WHERE e.id = emp_id; RETURN salary; END;
Verwendung der Funktion:
MySQL 8.1SELECT name, GetEmployeeSalary(id) FROM employees;