MINT üben

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;
Merke

Verknüpfen: AND: beide Bedingungen gelten, OR: mindestens eine, NOT kehrt um. Vorrang: NOT vor AND vor OR, im Zweifel Klammern.

Kurzformen: BETWEEN a AND b schließt beide Grenzen ein; IN (…) kürzt mehrere OR-Vergleiche.

Text und NULL: LIKE: % steht für beliebig viele Zeichen, _ für genau eines. Fehlende Werte findet IS NULL, nie = NULL.

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;

ORDER BY: ASC aufsteigend (Standard), DESC absteigend. Der zweite Schlüssel entscheidet nur bei Gleichstand im ersten.

Ablauf: Erst filtert WHERE, dann wird sortiert, zuletzt schneidet LIMIT n auf die ersten n Zeilen ab.

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