Bedingungen mit WHERE
SELECT wählt Spalten aus, WHERE wählt Zeilen aus. Mit Fachbegriff heißt das Selektion.
Vergleiche
| Operator | Bedeutung |
|---|---|
= |
gleich |
<> oder != |
ungleich |
< > <= >= |
kleiner, größer, kleiner-gleich, größer-gleich |
Texte stehen in einfachen Anführungszeichen ('Indie'), Zahlen nicht (2015). Ein Datum wird in dieser Datenbank als Text im Format JJJJ-MM-TT gespeichert und deshalb wie Text behandelt: '2026-07-18'.
Die letzte Abfrage vergleicht Texte mit >. Das funktioniert, weil das Datumsformat JJJJ-MM-TT so gebaut ist, dass die alphabetische Reihenfolge mit der zeitlichen übereinstimmt.
Bei TT.MM.JJJJ wäre das nicht so: 01.12.2026 käme alphabetisch vor 02.01.2026. Das ist einer der Gründe, warum Datumsangaben in Datenbanken fast immer mit dem Jahr beginnen.
Bedingungen verknüpfen
| Verknüpfung | Ergebnis wahr, wenn … |
|---|---|
bedingung1 AND bedingung2 |
beide wahr sind |
bedingung1 OR bedingung2 |
mindestens eine wahr ist |
NOT bedingung |
die Bedingung falsch ist |
AND bindet stärker als OR – genau wie Mal stärker bindet als Plus. Wo beides vorkommt, immer klammern.
Diese beiden Abfragen unterscheiden sich nur durch die Klammern:
SELECT name FROM band
WHERE herkunftsland = 'Deutschland' OR herkunftsland = 'Irland' AND gruendungsjahr > 2010;
SELECT name FROM band
WHERE (herkunftsland = 'Deutschland' OR herkunftsland = 'Irland') AND gruendungsjahr > 2010;
a) Sag vor dem Ausführen voraus, welche mehr Zeilen liefert und warum.
b) Führe beide aus und prüfe deine Vorhersage.
c) Formuliere für jede der beiden in einem deutschen Satz, wonach sie sucht.
Muster suchen mit LIKE
LIKE vergleicht mit einem Muster statt mit einem festen Text:
| Platzhalter | Bedeutung |
|---|---|
% |
beliebig viele Zeichen, auch keins |
_ |
genau ein beliebiges Zeichen |
Mengen und Bereiche
| Schreibweise | Bedeutung |
|---|---|
spalte IN ('a', 'b', 'c') |
der Wert ist einer der aufgezählten |
spalte BETWEEN 10 AND 20 |
der Wert liegt zwischen 10 und 20 – einschließlich der Grenzen |
IN ist die kurze Schreibweise für viele OR-Verknüpfungen, BETWEEN für ein AND aus zwei Vergleichen.
Schreibe die beiden ersten Abfragen ohne IN und ohne BETWEEN – nur mit AND, OR und Vergleichen. Prüfe, dass dasselbe herauskommt.
Aufgaben
Schreibe je eine Abfrage:
a) Alle Bands, die vor 2005 gegründet wurden, mit Namen und Gründungsjahr.
b) Alle Auftritte am 17. Juli 2026, die länger als 60 Minuten dauern.
c) Alle Bühnen, die überdacht sind und mehr als 1000 Menschen fassen.
d) Alle Personen, deren Vorname mit A beginnt oder deren Nachname mit n endet.
Tipp 1: Womit fange ich an?
Frage dich bei jeder Aufgabe in dieser Reihenfolge:
- Aus welcher Tabelle kommen die Zeilen? →
FROM - Welche Zeilen davon will ich? →
WHERE - Welche Spalten sollen zu sehen sein? →
SELECT
Geschrieben wird die Abfrage dann in der umgekehrten Reihenfolge.
Tipp 2: zu d)
„Endet mit n" heißt: beliebig viele Zeichen, dann ein n. Das Muster dafür ist '%n'.