SQL Academy
Premium
Frage №23
Verbleibend:

Was ist NULL und wie arbeitet man damit in SQL?

Musterantwort

Antwort standardmäßig anzeigen

NULL ist ein spezieller Wert in SQL, der einen fehlenden oder unbekannten Wert kennzeichnet.

Besonderheiten von NULL:

  • NULL ist nicht dasselbe wie ein leerer String oder die Zahl Null.
  • Arithmetik, Vergleiche und die meisten Funktionen liefern NULL, wenn einer der Operanden NULL ist: 5 + NULL ergibt NULL.
  • Auch der Vergleich NULL = NULL ergibt NULL und nicht true: Ob zwei unbekannte Werte gleich sind, ist unbekannt. Deshalb findet WHERE feld = NULL keine einzige Zeile – verwende stattdessen IS NULL.
  • Logische Operatoren sind eine Ausnahme: NULL OR true ergibt true und NULL AND false ergibt false.

Mit NULL arbeiten

Um auf NULL zu prüfen, nutzt du den Operator IS NULL oder IS NOT NULL.

MySQL 8.4
-- Datensätze mit unbekanntem Geburtsdatum finden
SELECT * FROM employees WHERE birth_date IS NULL;

-- Datensätze mit bekanntem Geburtsdatum finden
SELECT * FROM employees WHERE birth_date IS NOT NULL;

Funktionen für die Arbeit mit NULL

  • COALESCE

    Liefert das erste Element der Liste, das nicht NULL ist.

    MySQL 8.4
    COALESCE(val1[, val2, ...., val_n])
    
  • ISNULL

    Liefert 1 oder 0, je nachdem, ob der Ausdruck NULL ist.

    MySQL 8.4
    ISNULL(value)
    
  • IFNULL

    Liefert den ersten Wert, sofern dieser nicht NULL ist. Andernfalls wird der zweite Wert zurückgegeben.

    MySQL 8.4
    IFNULL(value, alternative_value)
    

Eine ausführliche Analyse mit Beispielen findest du im Artikel „COALESCE in SQL: NULL ersetzen und das NULLIF-Duo“.