Where
Die WHERE-Bedingung in einer SQL-Abfrage dient dazu, bestimmte Datensätze auszuwählen, die bestimmte Kriterien erfüllen. Es ermöglicht es, nur die Daten zu selektieren, die für eine Anforderungen relevant sind.
Die WHERE-Bedingung wird nach dem FROM-Schlüsselwort verwendet und muss eine logische Bedingung enthalten.
SELECT * FROM Tabellenname WHERE Alter > 18;
Dieser Befehl würde alle Datensätze aus der Tabelle „Tabellenname“ auswählen, bei denen das Alter größer als 18 ist.
Wenn nach Werten vom Datentyp Text gefragt wird, muß der Wert in Anführungszeichen (Einfache- oder Doppelte-Anführungszeichen) stehen.
SELECT * FROM Tabellenname WHERE name = 'John';
--oder
SELECT * FROM Tabellenname WHERE name = "John";
Vergleichsoperatoren
Für die Formulierung der Bedingungen stehen folgende Vergleichsoperatoren zur Verfügung:
Operator |
Beschreibung |
Beispiel |
---|---|---|
= |
Gleich |
WHERE Alter = 25 |
<> |
Nicht gleich |
WHERE Alter <> 25 |
> |
Größer als |
WHERE Alter > 25 |
< |
Kleiner als |
WHERE Alter < 25 |
>= |
Größer oder gleich |
WHERE Alter >= 25 |
<= |
Kleiner oder gleich |
WHERE Alter <= 25 |
BETWEEN |
Zwischen einem Bereich (inklusive) |
WHERE Alter BETWEEN 20 AND 30 |
NOT BETWEEN |
Nicht zwischen einem Bereich (inklusive) |
WHERE Alter NOT BETWEEN 20 AND 30 |
IN |
In einer Liste von Werten |
WHERE Alter IN (20, 25, 30) |
NOT IN |
Nicht in einer Liste von Werten |
WHERE Alter NOT IN (20, 25, 30) |
LIKE |
Suchen nach einem bestimmten Muster |
WHERE Name LIKE ‘Hansen‘ |
NOT LIKE |
Suchen nach einem bestimmten Muster das nicht passt (Benutzung von % als Wildcard) |
WHERE Name NOT LIKE ‘M%‘ |
IS NULL |
Prüfen ob ein Wert NULL ist |
WHERE Name IS NULL |
IS NOT NULL |
Prüfen ob ein Wert nicht NULL ist |
WHERE Name IS NOT NULL |
Logische Operatoren
Es können auch mehrere Bedingungen in der WHERE-Klausel verwendet werden und diese miteinander verknüpfen, indem man die logischen Operatoren wie AND, OR, NOT verwendet.
SELECT * FROM Tabellenname WHERE Alter > 18 AND Geschlecht = 'weiblich';
Dieser Befehl würde alle Datensätze aus der Tabelle „Tabellenname“ auswählen, bei denen das Alter größer als 18 ist und das Geschlecht „weiblich“ ist.
Operator |
Beschreibung |
Beispiel |
---|---|---|
AND |
Alle Bedingungen müssen erfüllt sein |
WHERE Alter = 25 AND Geschlecht = ‘m‘ |
OR |
Mindestens eine Bedingung muss erfüllt sein |
WHERE Alter = 25 OR Alter = 30 |
NOT |
Negiert eine Bedingung |
WHERE NOT Alter = 25 |
Wahrheitstabelle
Wert 1 |
Wert 2 |
AND |
OR |
---|---|---|---|
True |
True |
True |
True |
True |
False |
False |
True |
False |
True |
False |
True |
False |
False |
False |
False |