MINT lernen

Bedingungen und Sortierung

Wer hat die meisten Punkte in der 10a? Mit AND, OR und ORDER BY beantwortet die Datenbank das in einer Zeile.

1

Bedingungen verknüpfen

  • AND:beide Teilbedingungen müssen gelten: Klasse = '10a' AND Punkte >= 60.
  • OR:mindestens eine muss gelten; NOT kehrt eine Bedingung um.
  • Vorrang:NOT vor AND vor OR — im Zweifel Klammern setzen.
  • BETWEEN:Punkte BETWEEN 50 AND 70 schließt beide Grenzen ein.
  • IN:Klasse IN ('10a', '10b') kürzt mehrere OR-Vergleiche ab.
  • LIKE:Textmuster: % steht für beliebig viele Zeichen, _ für genau eines — Name LIKE '_i%' passt auf „Dina“ und „Gia“.
  • IS NULL:findet fehlende Werte; = NULL findet nie etwas.
SELECT Name, Punkte
FROM Ergebnis
WHERE (Klasse = '10a' OR Klasse = '10b') AND Punkte >= 60;
2

Ergebnis sortieren

  • ORDER BY:sortiert das Ergebnis nach einem Attribut — ASC aufsteigend (Standard), DESC absteigend.
  • Mehrere Schlüssel:ORDER BY Klasse, Punkte DESC: erst nach Klasse; nur bei gleicher Klasse entscheidet die Punktzahl.
  • LIMIT:LIMIT 3 gibt nur die ersten drei Zeilen des sortierten Ergebnisses aus.
  • Ablauf:WHERE filtert zuerst, danach wird sortiert, zuletzt schneidet LIMIT ab.

Wähle oben eine Abfrage. Ziehe die Karten in die Reihenfolge, in der sie im Ergebnis stehen — alles, was nicht ins Ergebnis kommt, gehört unter die Trennlinie. Tastatur: Leertaste nimmt auf, Pfeiltasten verschieben, Leertaste legt ab.

Wer steht wo im Ergebnis?

Halte fest: Die Datenbank filtert zuerst mit WHERE, sortiert dann nach dem ersten Schlüssel und zieht den zweiten nur bei Gleichstand heran. LIMIT greift ganz am Ende.

Merke

Abfrage mit Sortierung:

SELECT Attribute
FROM Tabelle
WHERE Bedingung
ORDER BY Attribut1 [ASC|DESC], Attribut2 [ASC|DESC]
LIMIT n;
3

Allgemeine Hinweise

AND vor OR

Klasse = '10a' OR Klasse = '10b' AND Punkte >= 60 filtert die Punkte nur für 10b. Mit Klammern ist klar, was gemeint ist.

LIKE braucht Platzhalter

Name = 'D%' sucht den Namen „D%“ wörtlich. Für Muster immer LIKE verwenden.

Grenzen mitzählen

BETWEEN 50 AND 70 entspricht Punkte >= 50 AND Punkte <= 70 — beide Grenzen gehören dazu.

Videos