SQL WHERE - Erklärung und Beispiele

Im vorherigen Befehl SELECT haben wir gelernt, dass 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 bzw. selektieren. 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.

SQL WHERE Syntax

Die Syntax für WHERE lautet folgendermaßen:


SELECT spaltenname,  [..]
 FROM tabellenname
 WHERE Bedingung;

Die Auswahl für die Daten findet kann erst dann stattfinden, wenn sie ausgewählt worden sind. Deshalb ist WHERE immer das nächste Element nach FROM bei der SQL Syntax. Allerdings bedeutet das nicht, dass mit WHERE nur die selektierten Spalten aus der SELECT Zeile eingeschränkt werden können, sondern generell alle Daten aus der Tabelle.

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. !=).



Video Tutorial

Im nachfolgenden Video Tutorial zur SQL-Klausel WHERE wird anhand von konkreten Beispielen erklärt, wie man WHERE einsetzt und was es dabei zu beachten gibt. Unter anderem sieht man darin auch, wie man mit den Operatoren AND und OR verschiedene Bedingungen in der WHERE-Klausel verknüpft.



SQL Where Beispiele

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:

SQL WHERE Befehl Beispielstabelle


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

Mit WHERE Tabellen verknüpfen

Auch wenn WHERE eher ein Thema der Datenmanipulation ist, kann es auch eingesetzt werden um mehrere Tabellen in einer Datenbank zu verbinden. Das ist allerdings historisch bedingt, da es vor SQL-92 noch keinen Join-Befehl gab. Wer sich dennoch dafür interessiert, wie man mit WHERE verschiedene Tabellen ganz einfach verbinden kann, der sollte einmal hier klicken.