In diesem Kapitel lernst du, wie du Daten präzise filterst und sortierst. Wir behandeln Vergleichsoperatoren, logische Operatoren und spezielle Klauseln wie IN, BETWEEN und LIKE. Zudem zeigen wir dir, wie du diese Tools kombinierst, um komplexe Abfragen zu erstellen.
3.1 Vergleichsoperatoren
Vergleichsoperatoren sind das Grundwerkzeug der WHERE-Klausel. Sie helfen dir, Daten basierend auf mathematischen oder logischen Bedingungen auszuwählen.
Wichtige Vergleichsoperatoren
Operator | Bedeutung | Beispiel-Anwendung | Erklärung |
---|---|---|---|
= | Gleich | WHERE alter = 25 | Gibt Zeilen mit dem Alter von exakt 25 Jahren zurück |
!= /<> | Ungleich | WHERE stadt != 'Berlin' | Gibt alle Zeilen zurück, deren Stadt nicht Berlin ist. |
> | Größer als | WHERE preis > 50 | Zeigt Produkte über 50 € |
< | Kleiner als | WHERE alter < 18 | Findet Minderjährige |
>= | Größer oder gleich | WHERE bestand >= 100 | Bestände ab 100 Einheiten |
<= | Kleiner oder gleich | WHERE datum <= '2023-12-31' | Daten bis Ende 2023 |
Beispiel: Teure Elektronikartikel filtern
Wir haben eine Tabelle namens produkte
, die verschiedene Artikel enthält.
Diese Tabelle besitzt folgende Spalten:
id
: Eine eindeutige Produktnummername
: Der Name des Produktspreis
: Der Preis des Produkts in Eurokategorie
: Die Produktkategorie (z. B. „Elektronik“, „Bücher“, „Kleidung“)

Wir möchten in der Tabelle produkte
alle teuren Elektronikartikel finden. Das bedeutet, wir suchen nach Produkten, die:
Mehr als 500 € kosten
Zur Kategorie „Elektronik“ gehören
Dazu formulieren wir folgendes SQL-Statement:
SELECT * FROM produkte WHERE preis > 500 AND kategorie = 'Elektronik';
Das Statement setzt sich aus den folgenden Elementen zusammen:
SELECT *
: Wähle alle Spalten aus.FROM produkte
: Aus der Tabelleprodukte
.WHERE
: Filtere nach folgenden Bedingungen:preis > 500
: Preis muss über 500 € liegen.AND
: Beide Bedingungen müssen erfüllt sein.kategorie = 'Elektronik'
: Nur Produkte aus der Kategorie „Elektronik“.
Die Ergebnistabelle enthält nur Zeilen, die beide Bedingungen erfüllen und sieht in unserem Beispiel wie folgt aus:

Hier sind weitere Beispiele zum Umgang mit den Vergleichsoperatoren:
Beispiel 1: Produkte über 500 €
SELECT * FROM produkte WHERE preis > 500;
Beispiel 2: Produkte unter 100 €
SELECT name, preis FROM produkte WHERE preis < 100;
Beispiel 3: Produkte aus der Kategorie „Elektronik“
SELECT * FROM produkte WHERE kategorie = 'Elektronik';
Beispiel 4: Teure Elektronik (Preis > 500 € UND Kategorie = Elektronik)
SELECT * FROM produkte WHERE preis > 500
AND kategorie = 'Elektronik';
Beispiel 5: Produkte, die nicht Elektronik sind
SELECT * FROM produkte WHERE kategorie != 'Elektronik' ;
Beispiel 6: Produkte zwischen 100 € und 500 € (Grenzwerte einschließlich)
SELECT * FROM produkte WHERE preis BETWEEN 100 AND 500;
Beispiel 7: Produkte, deren Name „Smart“ enthält
SELECT * FROM produkte WHERE name LIKE '%Smart%';
3.2 Logische Operatoren
Logische Operatoren ermöglichen es dir, mehrere Bedingungen in einer Abfrage zu kombinieren. Die wichtigsten logischen Operatoren sind AND, OR und NOT.
AND
Der AND
-Operator wird verwendet, um sicherzustellen, dass alle Bedingungen erfüllt sind. Die einzelnen Bedingungen werden mit dem AND
-Operator verknüpft.
Beispiel:
Um alle Produkte abzurufen, die günstiger sind als 200 EUR und zur Kategorie Bücher gehören:
SELECT * FROM produkte WHERE preis < 200
AND kategorie = 'Bücher';
OR
Der OR
-Operator wird verwendet, wenn mindestens eine der Bedingungen erfüllt sein soll.
Beispiel:
Um alle Produkte abzurufen, die entweder zur Kategorie Bücher oder Möbel gehören, schreibst du:
SELECT * FROM produkte WHERE kategorie = 'Bücher'
OR kategorie = 'Möbel';
NOT
Der NOT
-Operator kehrt eine Bedingung um. Er wird verwendet, um Daten auszuschließen, die einer bestimmten Bedingung entsprechen.
Beispiel:
Um alle Benutzer abzurufen, die nicht zur Kategorie Elektronik gehören, schreibst du:
SELECT * FROM produkte WHERE NOT kategorie = 'Elektronik';
3.3 IN, BETWEEN und LIKE
WHERE
-Klausel und machen deine Abfragen noch flexibler.
IN
DieIN
-Klausel in SQL ist besonders praktisch, wenn du Datensätze basierend auf mehreren möglichen Werten in einer Spalte filtern möchtest. Anstatt mehrere Bedingungen mit OR
zu verknüpfen, kannst du einfach eine Liste von Werten angeben – das spart nicht nur Schreibarbeit, sondern macht den Code auch deutlich übersichtlicher.
Beispiel:
Angenommen, du möchtest alle Produkte anzeigen, die entweder in der Kategorie Möbel oder Bücher sind. Statt so etwas zu schreiben:SELECT * FROM produkte WHERE kategorie = 'Möbel' OR kategorie = 'Bücher';
IN
-Klausel eine elegantere Lösung verwenden:
SELECT * FROM produkte WHERE kategorie IN ('Möbel', 'Bücher');
- Die Werte in der Klammer müssen vom gleichen Datentyp sein wie die Spalte, die du filterst.
- Du kannst beliebig viele Werte in der Liste angeben.
- Die
IN
-Klausel kann auch mit einer Unterabfrage kombiniert werden.
BETWEEN
BETWEEN-Klausel in SQL wird verwendet, um Daten zu filtern, die innerhalb eines bestimmten Wertebereichs liegen. Dabei sind beide Grenzwerte inklusive, also der Anfangs- und der Endwert werden ebenfalls berücksichtigt. Das ist besonders praktisch, wenn du nach Zahlenwerten (z. B. Preise, Mengen, IDs) oder nach Datumswerten filtern möchtest, die in einem bestimmten Intervall liegen.Beispiel:
Um alle Produkte mit einem Preis zwischen 100 und 400 Euro abzurufen, schreibst du:SELECT* FROM produkte WHERE preis BETWEEN 100 AND 400;Diese Abfrage gibt dir alle Zeilen zurück, bei denen der Wert in der Spalte
preis
größer oder gleich 100 und gleichzeitig kleiner oder gleich 400 ist.
Das wäre funktional identisch mit:
SELECT * FROM produkte WHERE preis >= 100 AND preis <= 400;Aber
BETWEEN
ist kürzer, leichter zu lesen und besser geeignet, wenn du Bereiche vergleichen willst.
Hinweise zur Verwendung von BETWEEN:
- Grenzwerte inklusive: Sowohl der untere als auch der obere Grenzwert zählen mit.
- Datentyp beachten: Die BETWEEN-Klausel funktioniert mit Zahlen, Text (alphabetisch sortiert), Datums- und Zeitwerten.
- Mit Textwerten: Auch Strings können gefiltert werden – z. B. alle Namen zwischen ‚Anna‘ und ‚Laura‘. Dabei wird die alphabetische Reihenfolge berücksichtigt:
SELECT * FROM kunden WHERE name BETWEEN 'Anna' AND 'Laura';
- Mit Datumswerten: Du kannst auch Zeiträume abfragen, z. B.:
SELECT * FROM bestellungen WHERE bestelldatum BETWEEN '2024-01-01' AND '2024-12-31';
LIKE
Die LIKE
-Klausel in SQL hilft dir dabei, Textwerte zu filtern, die einem bestimmten Muster entsprechen. Das bedeutet: Du musst nicht genau wissen, wie ein Textfeld aussieht – es reicht, wenn du weißt, wie es ungefähr beginnt, endet oder was drin vorkommt.
Im Gegensatz zu =
(was nach exakten Übereinstimmungen sucht), ist LIKE
deutlich flexibler – besonders nützlich bei Suchfunktionen oder bei der Auswertung von Texten in Datenbanken.
Platzhalter in LIKE
Um Muster zu definieren, kannst du zwei wichtige Platzhalter verwenden:
- % (Prozentzeichen): Steht für beliebig viele Zeichen – egal wie viele und auch kein Zeichen.
- _ (Unterstrich): Steht für genau ein einzelnes Zeichen.
Mit diesen beiden Platzhaltern kannst du gezielt nach Texten suchen, die einem bestimmten Schema folgen.
Beispiel:
Angenommen, du möchtest aus einer Produkttabelle alle Einträge abrufen, deren Name mit dem Buchstaben „M“ anfängt – z. B. Monitor, Maus, Matte usw. Dann schreibst du:SELECT * FROM produkte WHERE name LIKE 'M%';Was passiert hier?
- ‚M%‘ bedeutet: Der Name soll mit „M“ anfangen, und danach dürfen beliebig viele Zeichen folgen.
- Es werden also alle Produktnamen ausgewählt, die mit einem großen M starten – egal, was danach kommt.
Weitere Beispiele für LIKE
1. Name endet mit „er“:WHERE name LIKE '%er';
Findet z. B. Drucker, Beamer, Lautsprecher.
2. Name enthält „top“ irgendwo im Wort:
WHERE name LIKE '%top%';
Findet z. B. Laptop, Desktop, Stoptaste.
3. Name hat ein „a“ an zweiter Stelle:
WHERE name LIKE '_a%';
Findet z. B. Lampe, Tasche, Radio (weil der erste Buchstabe egal ist, der zweite ein „a“ sein muss, und danach wieder beliebig viele Zeichen erlaubt sind).
3.4 Kombination von Klauseln
Du kannst die verschiedenen Klauseln kombinieren, um komplexe Abfragen zu erstellen.
Beispiel:
Um alle Produkte abzurufen, die teurer sind als 250 EUR und aus der Kategorie Elektronik stammen und deren Name mit ‚A‘ beginnt, schreibst du:
SELECT * FROM produkte WHERE preis > 250 AND kategorie = 'Elektronik' AND name LIKE 'A%';
3.5 Zusammenfassung
In diesem Kapitel hast du gelernt:
Wie du Vergleichsoperatoren verwendest, um Daten zu filtern.
Wie du logische Operatoren (
AND
,OR
,NOT
) kombinierst.Wie du IN, BETWEEN und LIKE für spezielle Filterungen einsetzt.
Wie du komplexe Abfragen erstellst, indem du mehrere Klauseln kombinierst.
Im nächsten Kapitel werden wir uns mit Daten manipulieren beschäftigen und lernen, wie du Daten in einer Datenbank einfügst, aktualisierst und löschst.
Quiz zu Daten filtern und sortieren
Teste dein Wissen mit diesen Fragen:
Welcher Operator wird verwendet, um sicherzustellen, dass alle Bedingungen erfüllt sind?
a)
OR
b)
AND
c)
NOT
Wie filterst du Daten, die in einer Liste von Werten enthalten sind?
a) Mit
BETWEEN
b) Mit
IN
c) Mit
LIKE
Welcher Platzhalter wird verwendet, um beliebig viele Zeichen in der
LIKE
-Klausel darzustellen?a)
_
b)
%
c)
*
Antworten:
1. b) AND
2. b) IN
3. b) %