SQL Academy · Lektion

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.

Lektion 3 von 413 Schritte

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;         -- NULL

IS 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 users

Dreiwertige Logik

Die boolesche Logik von SQL hat DREI Werte: TRUE, FALSE und UNKNOWN (NULL).

ABA AND BA OR B
TRUENULLNULLTRUE
FALSENULLFALSENULL
NULLNULLNULLNULL

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;  -- 60

Sortierung 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
  • COALESCE ist Ihr Freund

Kurzer Test

Was gibt SELECT NULL = NULL; zurück?

Kostenlos starten

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

  1. Was ein RDBMS ist und warum Tabellen wichtig sind
  2. Primärschlüssel und Eindeutigkeit
  3. NULL: Der dritte Wahrheitswert
  4. Überblick über Datentypen: INT VARCHAR DATE BOOLEAN
← Zurück zu SQL Academy