WHERE
Im vorherigen Befehl SELECT haben wir gelernt, das man mit diesem Schlüsselwort ganze Spalten einer Tabelle auswählen kann. Dabei werden alle Datensätze der ausgewählte(n) Spalte(n) angezeigt. Nun kann es aber zu einer Aufgabenstellung kommen, bei der nicht alle Datensätze einer Tabelle bzw. einer Spalte benötigt werden, sondern nur bestimmte. Möchte man spezielle Daten aus einer Menge haben, muss man Filtern. Damit das Funktioniert benötigt man eine Filterregel, sprich eine Bedingung, die festlegt welche Daten angezeigt werden sollen und welche nicht. In SQL schränkt man die Auswahl der Daten mit dem Schlüsselwort WHERE ein.
Die Syntax für WHERE lautet folgendermaßen:
SELECT spaltenname, [..]
FROM tabellenname
WHERE Bedingung;
Die Auswahl für die Daten findet kann erst dann statt finden, wenn sie ausgewählt worden sind. Deshalb ist WHERE immer das nächste Element nach FROM bei der SQL Syntax.
Nun kann nach WHERE eine beliebige Bedingung folgen. Wichtig sind hier Vergleichsoperatoren wie gleich (=), größer als (>), kleiner als (<), größer oder gleich (>=), kleiner oder gleich (>=) oder ungleich (<> bzw. !=).
Möchte man nun z.B. bei der unteren Tabelle alle Bücher mit Titel und Seitenanzahl anzeigen lassen, bei der die Seitenanzahl über 400 Seiten beträgt, muss man folgenden SQL Befehl eingeben:
SELECT Titel, Seitenanzahl
FROM Buecher
WHERE Seitenanzahl > 400;
Somit werden nur Bücher ausgewählt, bei denen die Seitenzahl über 400 Seiten liegt. In diesem Falle wäre das "Friedhof der Kuscheltiere" und "Der Schwarm".
Ein kleines bisschen anders sieht es aus, wenn man in der Bedingung einen String, sprich eine Zeichenkette hat. Hier sollte man die ' ' nicht vergessen. Möchte man z.B. alle Bücher einer bestimmten Kategorie, in diese Fall Horror, anzeigen, präsentiert sich der Befehl folgenderaßen:
SELECT Titel, Rubrik
FROM Buecher
WHERE Rubrik = 'Horror';