CodeGym /Kurse /SQL SELF /Einführung in NULL. Unterschied zwischen NULL und 0

Einführung in NULL. Unterschied zwischen NULL und 0

SQL SELF
Level 9 , Lektion 0
Verfügbar

Es ist Zeit, etwas genauer über NULL zu sprechen. Und das ist alles andere als ein leeres Gespräch, auch wenn unser Held... irgendwie gar nicht aussieht. Wenn eine Tabelle ein Haus wäre, dann wäre NULL sein Geist – still, geheimnisvoll und unberechenbar. Er ist irgendwie da, aber antwortet nicht auf Fragen, macht bei Berechnungen nicht mit und meidet Vergleiche. Das ist nicht einfach nur "leer" – das ist "nichts ist bekannt".

In der SQL-Welt ist NULL weder Null, noch ein leerer String und auch nicht "keine Daten" im üblichen Sinne. Es ist ein spezielles Zeichen für Unbekanntes, mit dem man vorsichtig umgehen muss. Heute klären wir, warum NULL nicht einfach nur ein seltsamer Gast, sondern ein wichtiger Teil jeder Datenbank ist. Denn es bedeutet buchstäblich "Wert ist unbekannt oder nicht definiert".

Worin unterscheidet sich NULL von einem leeren String oder der Zahl 0?

Viele Anfänger verwechseln NULL mit anderen Werten wie dem leeren String '' oder der Zahl 0. Lass uns die wichtigsten Unterschiede anschauen:

Begriff Wert
NULL Völliges Fehlen eines Wertes. Das ist nicht einfach eine leere Kiste, das ist das Fehlen der Kiste
Leerer String Das ist ein String ohne Zeichen. Zum Beispiel: ''
Zahl 0 Ein Wert, der eine konkrete Zahl, nämlich Null, darstellt

Ein Beispiel aus dem echten Leben: Stell dir vor, du hast eine Tabelle mit Mitarbeitern und speicherst deren Gehälter. Wenn das Gehalt als 0 angegeben ist, heißt das, die Person hat nichts bekommen. Wenn das Gehalt aber NULL ist, weißt du einfach nicht, wie viel gezahlt wird (oder es ist noch nicht festgelegt).

Wie interpretiert man NULL

Jetzt, wo wir schon ein bisschen wissen, was NULL ist, schauen wir uns an, wie SQL damit umgeht. Das Wichtigste zu NULL kann man in einem Satz sagen: NULL ist nichts gleich und nichts ungleich, nicht mal sich selbst.

SELECT NULL = NULL;  -- Ergebnis: FALSE

Überraschung! Warum ist das so? Weil NULL eben Unbekanntes ist. Wenn du zwei unbekannte Werte hast, kannst du nicht sagen, dass sie gleich sind – aber auch nicht, dass sie ungleich sind.

Lass uns ein paar Beispiele anschauen:

Beispiele für Operationen mit NULL

SELECT NULL + 1;      -- Ergebnis: NULL
SELECT NULL * 100;    -- Ergebnis: NULL
SELECT NULL = 0;      -- Ergebnis: FALSE
SELECT NULL <> 0;     -- Ergebnis: FALSE

NULL gibt bei Addition, Multiplikation oder jeder anderen Berechnung immer NULL zurück. Hier verhält sich NULL nicht wie 0 in der Mathematik. Es ist, als würdest du etwas ins Nichts werfen und das Nichts verschlingt alles.

Praktische Beispiele

Stellen wir uns die Tabelle students mit Infos über Studierende vor:

id name birth_date grade
1 Alice 2000-01-01 85
2 Bob NULL 90
3 Charlie 1999-05-22 NULL
4 Diana NULL NULL

Beispiel 1: Einfluss von NULL in Bedingungen

Wenn wir versuchen, alle Studierenden ohne Geburtsdatum zu finden, indem wir die Bedingung WHERE birth_date = NULL setzen:

SELECT *
FROM students 
WHERE birth_date = NULL;

Wir bekommen keine Ergebnisse, weil NULL = NULL FALSE zurückgibt. Um auf NULL zu prüfen, muss man IS NULL verwenden:

SELECT * FROM students WHERE birth_date IS NULL;

Ergebnis:

id name birth_date grade
2 Bob NULL 90
4 Diana NULL NULL

Beispiel 2: Einfluss von NULL bei Berechnungen

id name birth_date grade
1 Alice 2000-01-01 85
2 Bob NULL 90
3 Charlie 1999-05-22 NULL
4 Diana NULL NULL

Wenn wir versuchen, den Durchschnitt aller Noten zu berechnen:

SELECT AVG(grade) FROM students;

Das Ergebnis ist: 87.5. Warum? Weil NULL bei Aggregatfunktionen wie AVG, SUM, MIN, MAX ignoriert wird. Aber Vorsicht! Wenn du Zeilen mit NULL berücksichtigen willst, brauchst du zusätzliche Tricks.

Wie man mit NULL noch genauer arbeitet, schauen wir uns in den nächsten Vorlesungen an.

2
Aufgabe
SQL SELF, Level 9, Lektion 0
Gesperrt
Verwendung von HAVING zur Filterung des durchschnittlichen Ratings
Verwendung von HAVING zur Filterung des durchschnittlichen Ratings
2
Aufgabe
SQL SELF, Level 9, Lektion 0
Gesperrt
Kundenanzahl nach Regionen mit Filterung
Kundenanzahl nach Regionen mit Filterung
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION