NULL: Der dritte Wahrheitswert
Verstehen Sie die Bedeutung von NULL, warum NULL mit nichts gleich ist (nicht einmal mit sich selbst) und wie dreiwertige Logik WHERE-Klauseln beeinflusst.
NULL: Der dritte Wahrheitswert ist eine kostenlose SQL Academy-Lektion auf CoddyKit. Dies ist Lektion 3 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.
Was ist NULL?
NULL steht für unbekannte oder fehlende Daten. NULL ist weder null, noch eine leere Zeichenkette, noch false. Es bezeichnet ausdrücklich das Fehlen eines Werts.
NULL ist mit nichts gleich (nicht einmal mit sich selbst)
Das ist die Regel, die alle immer wieder verwirrt:
SELECT NULL = NULL; -- NULL (not true!)
SELECT NULL = 0; -- NULL
SELECT NULL = ''; -- NULL
SELECT NULL <> 1; -- NULLIS NULL und IS NOT NULL verwenden
Um auf NULL zu prüfen, müssen Sie die speziellen Prädikate IS NULL und IS NOT NULL verwenden:
SELECT email FROM users WHERE deleted_at IS NULL; -- active users
SELECT email FROM users WHERE deleted_at IS NOT NULL; -- deleted usersDreiwertige Logik
Die boolesche Logik von SQL hat DREI Werte: TRUE, FALSE und UNKNOWN (NULL).
| A | B | A AND B | A OR B |
|---|---|---|---|
| TRUE | NULL | NULL | TRUE |
| FALSE | NULL | FALSE | NULL |
| NULL | NULL | NULL | NULL |
WHERE verwirft Zeilen, deren Prädikat NULL ist
Wenn WHERE x = 5 für eine Zeile zu NULL ausgewertet wird (weil x NULL ist), wird diese Zeile NICHT zurückgegeben. Nur Zeilen, für die das Prädikat TRUE ergibt, bleiben erhalten.
-- Suppose age is NULL for some users:
SELECT * FROM users WHERE age >= 18;
-- Users with NULL age are NOT returned, even though we
-- don't actually know they're under 18.Die NOT-IN-NULL-Falle
Diese Abfrage gibt ZERO Zeilen zurück, wenn ein Name in der Unterabfrage NULL ist:
SELECT * FROM users
WHERE name NOT IN (SELECT excluded_name FROM blocklist);
-- If blocklist has a NULL row, the whole NOT IN evaluates to NULL
-- → no rows returned
-- Safer:
SELECT * FROM users u
WHERE NOT EXISTS (
SELECT 1 FROM blocklist b WHERE b.excluded_name = u.name
);COALESCE: NULL durch einen Standardwert ersetzen
COALESCE gibt das erste Argument zurück, das nicht NULL ist:
SELECT id, COALESCE(full_name, email, 'Anonymous') AS display_name
FROM users;
-- If full_name is NULL, use email; if that's NULL too, use 'Anonymous'.NULLIF: Das Gegenteil
NULLIF(a, b) gibt NULL zurück, wenn a = b gilt, andernfalls a. Nützlich, um Platzhalterwerte wie '' oder 0 als NULL zu behandeln.
SELECT NULLIF(price, 0) FROM products;
-- Returns NULL when price is 0, useful for AVG() that should ignore zeros.NULL in Aggregatfunktionen
Aggregatfunktionen (außer COUNT(*)) überspringen NULL-Eingaben:
-- Suppose: prices = [10, 20, NULL, 30]
SELECT COUNT(*) FROM products; -- 4 (counts rows)
SELECT COUNT(price) FROM products; -- 3 (counts non-NULL prices)
SELECT AVG(price) FROM products; -- 20 (60 / 3, not 60 / 4)
SELECT SUM(price) FROM products; -- 60Sortierung von NULL
Standardmäßig sortiert PostgreSQL NULL-Werte bei aufsteigender Sortierung zuletzt und bei absteigender Sortierung zuerst. Sie können dies überschreiben:
SELECT * FROM users ORDER BY last_login_at DESC NULLS LAST;NULL vs. leere Zeichenkette speichern
Entscheiden Sie für jede Spalte: Ist '' ein gültiger Wert? Falls nicht, verwenden Sie NULL für "kein Wert". Falls ja, bedeutet NULL etwas anderes (z. B. "noch nicht gefragt").
Seien Sie konsistent – vermischen Sie beides nicht in derselben Spalte.
Zusammenfassung
NULL ist ein eigener Wahrheitswert.
- Prüfen Sie mit
IS NULL, niemals mit= NULL - WHERE-Filter behalten nur Zeilen mit TRUE bei
- Aggregatfunktionen überspringen NULL-Eingaben
COALESCEist Ihr Freund
Kurzer Test
Was gibt SELECT NULL = NULL; zurück?
Lerne SQL mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 46
- Lektionen
- 183
Häufig gestellte Fragen
Ist die Lektion „NULL: Der dritte Wahrheitswert“ kostenlos?
Ja — der vollständige Text von „NULL: Der dritte Wahrheitswert“ 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 „NULL: Der dritte Wahrheitswert“?
Verstehen Sie die Bedeutung von NULL, warum NULL mit nichts gleich ist (nicht einmal mit sich selbst) und wie dreiwertige Logik WHERE-Klauseln beeinflusst. 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 3 von 4.
Wie lange dauert die Lektion „NULL: Der dritte Wahrheitswert“?
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
- Was ein RDBMS ist und warum Tabellen wichtig sind
- Primärschlüssel und Eindeutigkeit
- NULL: Der dritte Wahrheitswert
- Überblick über Datentypen: INT VARCHAR DATE BOOLEAN