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.