Die SQL WHERE Klausel begrenzt eine Abfrage mit Bedingungen.
SELECT Spalte_1, Spalte_2
FROM Tabelle
WHERE Bedingungen;
Eine der fundamentalsten Befehle in SQL ist WHERE. Wir geben den Spalten Bedingungen und die Felder der Zeile müssen den Bedingungen entsprechen. Tun sie das, werden sie wiedergegeben. Entsprechen sie nicht den Bedingungen, werden sie ausgeblendet. Die SQL WHERE Bedingung erscheint immer in Folge auf die in FROM ausgewählte Tabelle. Diese Bedingungen sind Filter, um den SELECT Befehl zu erweitern. Die Bedingungen können zwei Typen von Operatoren beinhalten:
SQL WHERE mit Vergleichsoperatoren
Der Wert in einer Spalte wird mit einem selbst festgelegten Wert verglichen. Um Vergleiche in SQL zu ermöglichen, muss aus den folgenden Vergleichsoperatoren der richtige ausgewählt werden:
Vergleichsoperator |
Erklärung |
= |
Ist gleich / Entspricht genau |
<> |
Ist nicht gleich / Entspricht nicht |
> |
Ist größer als |
< |
Ist kleiner als |
>= |
Ist größer als oder ist gleich |
<= |
Ist kleiner als oder ist gleich |
Diese Operatoren sind aus der grundlegenden Mathematik bekannt. Der Unterschied zur Mathematik ist, dass diese Bedingungen nicht ausschließlich für Zahlen gelten. Es können die Werte der Felder auch mit Texten verglichen werden. Dafür kann man = und <> verwenden.
Mehr Informationen hier: Vergleichsoperatoren
SELECT Vorname, Nachname, Geburtsdatum, Land
FROM Kunden
WHERE Nachname = 'Müller';
SQL WHERE mit Logische Operatoren
Logische Operatoren erlauben uns in SQL, mehrere Vergleichsoperatoren zu kombinieren oder auszuschließen.
Logischer Operator |
Erklärung |
SQL gibt TRUE aus, wenn alle Bedingungen gleichzeitig gelten. |
|
SQL gibt TRUE aus, wenn mindestens eine von allen Bedingungen gilt. |
|
SQL gibt TRUE aus, wenn die Bedingung nicht zutrifft. |
SELECT Vorname, Nachname, Geburtsdatum, Land
FROM Kunden
WHERE Vorname = 'Max' AND Nachname = 'Müller';
Es existieren weitere, spezielle Operatoren, die TRUE/FALSE-Werte ausgeben.
Spezielle Operatoren |
|
Logischer Operator |
Erklärung |
Ermöglicht Platzhalter für Texte |
|
Kurzform für viele OR-Operatoren |
|
Alle Ergebnisse zwischen zwei Werten filtern |
|
Prüft, ob eine Unterabfrage in einer Spalte existiert |
|
Vergleich mit irgendeinem Wert einer Unterabfrage |
|
Vergleich mit allen Werten einer Unterabfrage |
SELECT Vorname, Nachname, Geburtsdatum, Land
FROM Kunden
WHERE Nachname IN ('Schmidt', 'Schmitt', 'Schmitz')
OR Nachname LIKE 'Schmi__'