Hauptmenü

Untermenü

MySQL - SQL - Grundlagen- NULL

1. Der Wert NULL

... sorgt bei Anfängern immer wieder für Irritationen. Darum werde ich jetzt mal das Licht der Erkenntnis über euch zum Leuchten bringen. Also, was ist NULL schon mal nicht. Es ist nicht die Zahl 0 und es ist auch keine leere Zeichenkette à la ''.

Und was ist nun NULL

In guter Tradition will ich das mal an einem ziemlich blödsinnigen Beispiel erklären. Wir habe in einer Adresstabelle die Spalte wohnort, in der wir die Straße, die PLZ und den Wohnort abspeichern. Gut das sollte man nicht machen, aber die Gründe kennt ihr ja schon.


INSERT INTO adresse VALUES ('Peter Kropff',NULL);

Diese Anweisung bedeutet, dass der Wohnort von diesem zwielichtigen Typ unbekannt ist. Ein NULL ist also nichts anderes als das Eingeständnis eigener Unwissenheit. Ganz anders verhält es sich dagegen bei diesem SQL-Statement.


INSERT INTO adresse VALUES ('Peter Kropff''');

In diesem Fall bedeutet der Leerstring '', dass der arme Kerl keinen Wohnort hat, also obdachlos ist. Sollte das tatsächlich mal passieren, so findet ihr mich unter den Rheinbrücken in Köln.

2. Und wozu das Buhei?

Will man nun herausfinden, bei welchen Personen wir den Wohnort nicht kennen, so prüfen wir auf NULL:


SELECT FROM adresse WHERE wohnort IS NULL;

Wollen wir dagegen alle Obdachlosen suchen, so geschieht dies mit folgender Anweisung:


SELECT FROM adresse WHERE wohnort '';

Die Negation der obigen Abfragen sieht dann so aus:


SELECT FROM adresse WHERE wohnort != '';
SELECT FROM adresse WHERE wohnort IS NOT NULL;

3. default

Wenn man eine Tabelle erstellt (dazu später mehr), so wird bei allen Spalten als Standardwert NULL vorgegeben. Will man aber den nicht zulassen, so muss man das zusätzlich angeben:


NOT NULL default ''
NOT NULL default 0

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt