Zum Inhalt springen

Kostenlose Lerninhalte

/informatik/161967/null-in-der-datenbank

Frei zugängliche, geprüfte Lerninhalte zum Verstehen, Wiederholen und selbstständigen Üben.

Artikel

NULL in der Datenbank

/informatik/161967/null-in-der-datenbank

NULL bedeutet, dass kein Wert für ein Attribut vorhanden ist. NULL ist unabhängig vom Datentyp des Attributs.

Man darf NULL nicht mit 0 oder einem leeren Text verwechseln!

Damit man sich das gut merken kann, kursieren im Internet sehr viele Variationen dieses Bildes:

NULL vs 0 mit Klorollen

Das Vorhandensein einer leeren Klorolle entspricht dem Wert 0 (die Rolle hat 0 Blätter). Das Fehlen der Klorolle entspricht NULL (nicht nur keine Blätter, einfach nichts).

Auf der Toilette ist beides ärgerlich. In der Datenbank kann aber beides möglich und sogar gewünscht sein:

Speichert man eine Temperatur, so ist Grad durchaus ein sinnvoller Wert.

Gibt ein Kunde manche Daten von sich nicht preis, so möchte man in der Datenbank auch einfach die Information bekommen, dass für dieses Attribut kein Wert vorhanden ist. Die Datenbank legt in diesem Fall ganz von selbst den Attributwert NULL fest.

NULL und SQL

Bei Datenbankabfragen mit SQL kann man sich NULL-Werte zunutze machen.

Nach NULL-Werten kann man mit SQL gezielt suchen:

sql
SELECT *
FROM Klopapierhalter
WHERE Blattanzahl IS NULL;

Oder sie gezielt vermeiden:

sql
SELECT *
FROM Klopapierhalter
WHERE NOT Blattanzahl IS NULL;

Möchte man, dass ein Attribut niemals keinen Wert hat, also niemals NULL ist, so ergänzt man in SQL bei der Definition der Relation in dieser Spalte NOT NULL:

sql
CREATE TABLE Klopapierhalter(
  HalterNr INT,
  Blattanzahl INT NOT NULL,
  PRIMARY KEY(HalterNr)
);

Nie wieder kein Klopapier!