PL/SQL - Bedingungen

Hallo da draußen, zukünftige PL/SQL-Zauberer! Heute tauchen wir ein in die faszinierende Welt der Bedingungen in PL/SQL. Keine Sorge, wenn du neu im Programmieren bist – ich werde dich auf dieser Reise Schritt für Schritt führen, genau wie ich es in den letzten Jahren für unzählige Schüler getan habe. Also, hole dir einen Becher Kaffee (oder Tee, wenn das deine Wahl ist) und los geht's!

PL/SQL - Conditions

Was sind Bedingungen in PL/SQL?

Stell dir vor, du stehst an einer Kreuzung und musst entscheiden, welchen Weg du nehmen sollst. Genau das machen Bedingungen im Programmieren – sie helfen deinem Code, Entscheidungen zu treffen. In PL/SQL werden Bedingungen verwendet, um den Ablauf deines Programms basierend auf bestimmten Kriterien zu steuern.

Bedeutung von Bedingungen

Bedingungen sind die Bausteine der Logik im Programmieren. Sie machen deinen Code intelligent und anpassungsfähig. Ohne Bedingungen wäre dein Programm wie ein Zug auf einer einzigen Schiene – er könnte nur in eine Richtung fahren. Mit Bedingungen ist es wie ein komplexes Eisenbahnnetz, bei dem dein Code verschiedene Routen basierend auf verschiedenen Situationen nehmen kann.

Arten von bedingten Anweisungen in PL/SQL

Schauen wir uns die verschiedenen Arten von bedingten Anweisungen in PL/SQL an:

Anweisung Zweck
IF-THEN Führt einen Codeblock aus, wenn eine Bedingung wahr ist
IF-THEN-ELSE Führt einen Codeblock aus, wenn eine Bedingung wahr ist, einen anderen, wenn sie falsch ist
IF-THEN-ELSIF Überprüft mehrere Bedingungen und führt die entsprechenden Blöcke aus
CASE Wählt einen von vielen Blöcken aus, um basierend auf einem Wert auszuführen

Nun, lassen wir uns jede dieser Anweisungen im Detail anschauen.

Die IF-THEN-Anweisung

Die IF-THEN-Anweisung ist die einfachste Form der bedingten Anweisung. Es ist, als würdest du sagen: "Wenn dies wahr ist, dann tue das."

Syntax und Beispiel

IF bedingung THEN
    anweisungen;
END IF;

Sehen wir uns das in der Praxis an:

DECLARE
    v_grade NUMBER := 75;
BEGIN
    IF v_grade >= 60 THEN
        DBMS_OUTPUT.PUT_LINE('Glückwunsch! Du hast bestanden.');
    END IF;
END;

In diesem Beispiel wird eine Gratulationsnachricht ausgegeben, wenn die Note 60 oder höher ist. Wenn sie niedriger ist, passiert nichts. Einfach, oder?

Die IF-THEN-ELSE-Anweisung

Manchmal möchtest du eine Sache tun, wenn eine Bedingung wahr ist, und eine andere, wenn sie falsch ist. Hier kommt IF-THEN-ELSE zurate.

Syntax und Beispiel

IF bedingung THEN
    anweisungen1;
ELSE
    anweisungen2;
END IF;

Lassen wir unser vorheriges Beispiel anpassen:

DECLARE
    v_grade NUMBER := 55;
BEGIN
    IF v_grade >= 60 THEN
        DBMS_OUTPUT.PUT_LINE('Glückwunsch! Du hast bestanden.');
    ELSE
        DBMS_OUTPUT.PUT_LINE('Entschuldigung, du hast nicht bestanden. Weiter lernen!');
    END IF;
END;

Jetzt behandelt unser Code beide Szenarien – Bestehen und Nicht-Bestehen. Es ist wie ein Plan B!

Die IF-THEN-ELSIF-Anweisung

Was ist, wenn wir mehrere Bedingungen überprüfen müssen? Dann kommt IF-THEN-ELSIF zur Rettung.

Syntax und Beispiel

IF bedingung1 THEN
    anweisungen1;
ELSIF bedingung2 THEN
    anweisungen2;
ELSIF bedingung3 THEN
    anweisungen3;
ELSE
    anweisungen4;
END IF;

Lassen wir ein detaillierteres Notensystem erstellen:

DECLARE
    v_grade NUMBER := 85;
BEGIN
    IF v_grade >= 90 THEN
        DBMS_OUTPUT.PUT_LINE('Ausgezeichnet! Du hast eine 1.');
    ELSIF v_grade >= 80 THEN
        DBMS_OUTPUT.PUT_LINE('Großartig! Du hast eine 2.');
    ELSIF v_grade >= 70 THEN
        DBMS_OUTPUT.PUT_LINE('Gute Arbeit! Du hast eine 3.');
    ELSIF v_grade >= 60 THEN
        DBMS_OUTPUT.PUT_LINE('Du hast mit einer 4 bestanden.');
    ELSE
        DBMS_OUTPUT.PUT_LINE('Entschuldigung, du hast nicht bestanden. Weiter lernen!');
    END IF;
END;

Dieser Code ist wie ein Lehrer, der Noten bewertet – er überprüft mehrere Bedingungen und gibt appropriate Rückmeldungen für jede Notenklasse.

Die CASE-Anweisung

Die CASE-Anweisung ist perfekt, wenn du eine einzelne Variable oder einen Ausdruck hast, den du mit mehreren möglichen Werten vergleichen möchtest.

Syntax und Beispiel

CASE ausdruck
    WHEN wert1 THEN ergebnis1
    WHEN wert2 THEN ergebnis2
    ...
    ELSE ergebnis
END CASE;

Lassen wir CASE verwenden, um den Wochentag zu bestimmen:

DECLARE
    v_day NUMBER := TO_CHAR(SYSDATE, 'D');
    v_message VARCHAR2(20);
BEGIN
    v_message := CASE v_day
        WHEN 1 THEN 'Sonntag'
        WHEN 2 THEN 'Montag'
        WHEN 3 THEN 'Dienstag'
        WHEN 4 THEN 'Mittwoch'
        WHEN 5 THEN 'Donnerstag'
        WHEN 6 THEN 'Freitag'
        WHEN 7 THEN 'Samstag'
        ELSE 'Ungültiger Tag'
    END;
    DBMS_OUTPUT.PUT_LINE('Heute ist ' || v_message);
END;

Dieser Code ist wie ein Kalender – er nimmt eine Zahl und sagt dir, welcher Wochentag sie darstellt.

Geschachtelte Bedingungen

Wie russische Puppen, kannst du Bedingungen in Bedingungen haben. Das nennt man Schachtelung.

Beispiel für geschachtelte Bedingungen

DECLARE
    v_age NUMBER := 25;
    v_income NUMBER := 50000;
BEGIN
    IF v_age >= 18 THEN
        IF v_income > 30000 THEN
            DBMS_OUTPUT.PUT_LINE('Du bist berechtigt, eine Kreditkarte zu beantragen.');
        ELSE
            DBMS_OUTPUT.PUT_LINE('Du bist erwachsen, aber du brauchst ein höheres Einkommen für eine Kreditkarte.');
        END IF;
    ELSE
        DBMS_OUTPUT.PUT_LINE('Du musst mindestens 18 Jahre alt sein, um eine Kreditkarte zu beantragen.');
    END IF;
END;

Dieser Code ist wie ein Bankangestellter, der mehrere Kriterien überprüft, bevor er eine Kreditkartenanfrage genehmigt.

Fazit

Glückwunsch! Du hast gerade die Welt der Bedingungen in PL/SQL durchquert. Denke daran, diese bedingten Anweisungen sind wie die Ampeln deines Codes – sie lenken den Ablauf und stellen sicher, dass alles reibungslos läuft.

Übung ist der Schlüssel zur Beherrschung dieser Konzepte. Versuche, deine eigenen Szenarien zu erstellen und zu sehen, wie du verschiedene bedingte Anweisungen verwenden kannst, um Probleme zu lösen. Bevor du es weißt, wirst du komplexe, intelligente PL/SQL-Programme schreiben, die jede Situation meistern können.

Weiter codieren, weiter lernen und vor allem: Spaß dabei haben! Wer weiß, vielleicht wirst du eines Tages derjenige sein, der PL/SQL einem neuen Heer neugieriger Lernender beibringt.

Credits: Image by storyset