Stored Procedures sind gespeicherte Prozeduren in der Datenbank, die du mit einem einzigen Befehl aufrufen kannst. Sie helfen, wiederkehrende Abläufe zu automatisieren, komplexe Logik in die Datenbank zu verlagern und den Code übersichtlicher zu machen.

🔹 Was sind Stored Procedures?

  • Eine Stored Procedure ist ein SQL-Skript, das in der Datenbank gespeichert wird.
  • Sie wird einmal erstellt und kann beliebig oft aufgerufen werden.
  • Parameter machen sie flexibel (IN, OUT, INOUT).

👉 Vorteil: Weniger wiederholter Code, zentrale Logik in der DB.

🔹 Einfache Procedure erstellen

Beispiel: Alle Kunden zurückgeben.

DELIMITER //
CREATE PROCEDURE alle_kunden()
BEGIN
    SELECT id, vorname, nachname, email FROM kunden;
END //
DELIMITER ;

Aufruf:

CALL alle_kunden();

🔹 Procedure mit Parametern

Beispiel: Bestellungen eines Kunden anzeigen.

DELIMITER //
CREATE PROCEDURE bestellungen_von(IN kunde INT)
BEGIN
    SELECT b.id, b.produkt, b.preis, b.bestelldatum
    FROM bestellungen b
    WHERE b.kunde_id = kunde;
END //
DELIMITER ;

Aufruf:

CALL bestellungen_von(1);

🔹 Procedure mit Ausgabeparameter

Beispiel: Anzahl der Bestellungen eines Kunden zurückgeben.

DELIMITER //
CREATE PROCEDURE anzahl_bestellungen(IN kunde INT, OUT anzahl INT)
BEGIN
    SELECT COUNT(*) INTO anzahl
    FROM bestellungen
    WHERE kunde_id = kunde;
END //
DELIMITER ;

Aufruf:

CALL anzahl_bestellungen(1, @anzahl);
SELECT @anzahl;

🔹 Procedure löschen

DROP PROCEDURE IF EXISTS alle_kunden;

🔹 Übung

  1. Erstelle eine Procedure kunde_suchen, die Vorname und Nachname als Parameter nimmt und den passenden Kunden anzeigt.
  2. Baue eine Procedure gesamt_ausgaben, die einem Kunden die Summe aller Bestellungen zurückgibt (als OUT-Parameter).
  3. Teste beide Procedures mit verschiedenen Kunden.

✅ Zusammenfassung

  • Stored Procedures automatisieren wiederkehrende Abläufe.
  • Mit Parametern (IN, OUT) werden sie flexibel.
  • Aufruf erfolgt mit CALL.
  • Sie machen Abfragen wiederverwendbar und strukturieren den Datenbankcode.

Im nächsten Kapitel beschäftigen wir uns mit Triggern – Aktionen, die automatisch bei Änderungen an Tabellen ausgelöst werden.

📚 Inhaltsverzeichnis

👉 MariaDB Kapitel 1: Einführung & Installation im Terminal
👉 MariaDB Kapitel 2: Benutzer & Rechteverwaltung
👉 MariaDB Kapitel 3: Tabellen sauber anlegen (Primär- & Fremdschlüssel)
👉 MariaDB Kapitel 4: Grundbefehle & Kurzschreibweisen in der MariaDB-Konsole
👉 MariaDB Kapitel 5: CRUD-Befehle  – Daten einfügen, lesen, ändern und löschen
👉 MariaDB Kapitel 6: Primär- und Fremdschlüssel – Tabellen verknüpfen
👉 MariaDB Kapitel 7: Profi-Abfragen mit JOIN, GROUP BY & Aggregatfunktionen
👉 MariaDB Kapitel 8: Indexe, Views & Transaktionen
👉 MariaDB Kapitel 9: Produktivbetrieb – Sicherheit, Backups & Verwaltung
👉 MariaDB Kapitel 10: Abschlussprojekt – Ein Mini-Shop

📚 Bonus-Kapitel Ideen

👉 MariaDB Kapitel 11: Stored Procedures – Automatisierte Abläufe
👉 MariaDB Kapitel 12: Trigger – Aktionen bei Änderungen
👉 MariaDB Kapitel 13: Events – Zeitgesteuerte Aufgaben
👉 MariaDB Kapitel 14: Sicherheit & Best Practices
👉 MariaDB Kapitel 15: Performance-Tuning & Optimierung