SQL_LEVEL_8_SOLUTION - OnlyCook/abitur-elite-code GitHub Wiki

Level S8 – Musterlösung: Klausurphase

Lösung

SELECT schueler, notenpunkte
FROM Klausur
WHERE fach = 'Informatik'
    AND notenpunkte < 5
ORDER BY notenpunkte DESC

Erklärung

Alles auf einmal – das Ende der Grundlagen

Dieses Level kombiniert alle Bausteine aus Sektion 1: Projektion, Filterung und Sortierung. Neu dazugekommen ist die Verknüpfung mehrerer Bedingungen mit AND.


AND – mehrere Bedingungen gleichzeitig

Mit AND kannst du in der WHERE-Klausel mehrere Bedingungen kombinieren. Eine Zeile wird nur dann ins Ergebnis aufgenommen, wenn alle Bedingungen gleichzeitig zutreffen:

WHERE fach = 'Informatik'
    AND notenpunkte < 5

Hier müssen also zwei Dinge gleichzeitig gelten: Das Fach muss Informatik sein und die Notenpunkte müssen unter 5 liegen. Jan aus Deutsch fällt raus, weil das erste Kriterium nicht zutrifft. Lisa aus Informatik fällt raus, weil das zweite nicht zutrifft.

Neben AND gibt es noch zwei weitere logische Operatoren:

Operator Bedeutung
AND Beide Bedingungen müssen zutreffen
OR Mindestens eine Bedingung muss zutreffen
NOT Kehrt eine Bedingung um

In diesem Level reicht AND – die anderen beiden wirst du in späteren Aufgaben noch brauchen.


Erinnerung: Strings in einfachen Anführungszeichen

Textwerte müssen in SQL immer in einfachen Anführungszeichen stehen: 'Informatik'. Doppelte Anführungszeichen ("Informatik") sind in Standard-SQL und MySQL für Spaltennamen reserviert und sollten für Textwerte vermieden werden.


Die Reihenfolge der Klauseln

Eine gute Faustregel für den Aufbau einer Abfrage – immer in dieser Reihenfolge denken:

SELECT   -- 1. Welche Spalten?
FROM     -- 2. Aus welcher Tabelle?
WHERE    -- 3. Welche Bedingungen?
ORDER BY -- 4. In welcher Reihenfolge?

SQL erwartet die Klauseln genau in dieser Reihenfolge. Tauschst du zum Beispiel WHERE und ORDER BY aus, gibt es einen Syntaxfehler.