WHERE-Filter: Vergleichs- und logische Operatoren
Filtern Sie Zeilen mit =, <>, , AND, OR und NOT und verstehen Sie die Operatorrangfolge sowie die Verwendung von Klammern.
WHERE-Filter: Vergleichs- und logische Operatoren ist eine kostenlose SQL Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des SQL Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.
Die Rolle von WHERE
WHERE filtert Zeilen vor der Gruppierung oder Aggregation. Nur Zeilen, deren Prädikat TRUE ist, werden zurückgegeben.
Vergleichsoperatoren
Standardvergleiche funktionieren mit allen vergleichbaren Typen:
SELECT * FROM products WHERE price > 100;
SELECT * FROM products WHERE price >= 100;
SELECT * FROM products WHERE price < 50;
SELECT * FROM products WHERE price <= 50;
SELECT * FROM products WHERE category = 'books';
SELECT * FROM products WHERE category <> 'books'; -- != also worksAND, OR, NOT
Kombinieren Sie Prädikate mit logischen Operatoren:
-- Both true:
SELECT * FROM products
WHERE category = 'books' AND price < 50;
-- Either true:
SELECT * FROM products
WHERE category = 'books' OR category = 'music';
-- Negation:
SELECT * FROM products
WHERE NOT (category = 'books');Rangfolge der Operatoren
Rangfolge (von hoch nach niedrig): NOT → AND → OR. Setzen Sie komplexe Prädikate für bessere Verständlichkeit immer in Klammern:
-- Without parens — almost certainly wrong:
SELECT * FROM orders
WHERE status = 'open' OR status = 'pending' AND total > 100;
-- means: status = open OR (status = pending AND total > 100)
-- With parens — clearer:
SELECT * FROM orders
WHERE (status = 'open' OR status = 'pending') AND total > 100;IN und NOT IN
Abkürzung für viele OR-Ausdrücke:
SELECT * FROM users
WHERE country IN ('US', 'CA', 'GB', 'AU');
-- Equivalent to:
SELECT * FROM users
WHERE country = 'US' OR country = 'CA' OR country = 'GB' OR country = 'AU';BETWEEN
Prüfung eines inklusiven Bereichs:
SELECT * FROM orders
WHERE total BETWEEN 100 AND 500;
-- Equivalent to: total >= 100 AND total <= 500NULL-sichere Filter
Vergleiche mit NULL ergeben NULL (nicht FALSE), und Zeilen mit NULL werden von WHERE verworfen. Verwenden Sie bei Bedarf ausdrücklich IS NULL / IS NOT NULL:
-- Returns users where deleted_at is unknown:
SELECT * FROM users WHERE deleted_at IS NULL;
-- IS DISTINCT FROM treats NULL as a comparable value:
SELECT * FROM events WHERE status IS DISTINCT FROM 'closed';Boolesche Spalten
Eine BOOLEAN-Spalte benötigt keinen Vergleich:
SELECT * FROM tasks WHERE done; -- = TRUE
SELECT * FROM tasks WHERE NOT done; -- = FALSE or NULL
SELECT * FROM tasks WHERE done IS NOT TRUE; -- FALSE or NULL onlyMustervergleich mit LIKE
% findet jede Zeichenkette, _ genau ein Zeichen:
SELECT * FROM users WHERE email LIKE '%@gmail.com';
SELECT * FROM products WHERE sku LIKE 'A_-___';
-- Case-insensitive in PostgreSQL:
SELECT * FROM users WHERE email ILIKE '%@GMAIL.com';Filter und Performance
WHERE-Klauseln zeigen, wofür Indizes eingesetzt werden. Gleichheitsfilter (=) und Bereichsfilter (<, BETWEEN) auf indizierten Spalten machen aus vollständigen Tabellenscans Abfragen, die in Millisekunden Ergebnisse liefern.
Auswertungsreihenfolge
Logisch gesehen wertet die Datenbank Folgendes aus: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT. Daher sieht WHERE die unveränderten Zeilen; Spaltenaliase aus SELECT sind noch nicht definiert.
-- This fails — alias not visible in WHERE:
SELECT total * 0.9 AS discounted
FROM orders WHERE discounted > 100; -- ERROR
-- Repeat the expression instead, or wrap in a subquery.Zusammenfassung
WHERE ist Ihr wichtigstes Werkzeug zum Auswählen von Zeilen.
- Standardvergleichs- und logische Operatoren
- Gemischte AND-/OR-Ausdrücke in Klammern setzen
IS NULLverwenden – niemals= NULL- WHERE auf indizierten Spalten ist schnell
Kurzer Check
Welches Prädikat lässt nur Zeilen zu, bei denen age größer oder gleich 18 ist und country den Wert US hat?
Häufig gestellte Fragen
Ist die Lektion „WHERE-Filter: Vergleichs- und logische Operatoren“ kostenlos?
Ja — der vollständige Text von „WHERE-Filter: Vergleichs- und logische Operatoren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des SQL Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „WHERE-Filter: Vergleichs- und logische Operatoren“?
Filtern Sie Zeilen mit =, <>, , AND, OR und NOT und verstehen Sie die Operatorrangfolge sowie die Verwendung von Klammern. Du übst SQL Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um SQL Academy zu starten?
Keine Vorkenntnisse erforderlich. SQL Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „WHERE-Filter: Vergleichs- und logische Operatoren“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser SQL Academy-Lektion Code schreiben und ausführen?
Ja. Jede SQL Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Spalten und Ausdrücke auswählen
- WHERE-Filter: Vergleichs- und logische Operatoren
- ORDER BY mit einer oder mehreren Spalten
- Grundlagen von LIMIT, OFFSET und Pagination