Premium
Frage17
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.1
CREATE PROCEDURE GetEmployeeByID(IN emp_id INT)
BEGIN
    SELECT * FROM employees WHERE id = emp_id;
END;

Aufruf der Prozedur:

MySQL 8.1
CALL 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.1
CREATE 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.1
SELECT name, GetEmployeeSalary(id) FROM employees;