Exkurs - Nullwerte und Wertebereich

Undefinierte Werte

Vielleicht ist dir bei dem SQL-Befehl zur Ausgabe der Mainzer Benutzer ein seltsamer Datenwert aufgefallen:

SELECT Vorname, Name, GebDat
  FROM benutzer
 WHERE Ort = 'Mainz'

Nullwerte in der Ausgabe einer Tabelle. Im Beispiel im Attribut GebDat.

In einigen Datensätzen steht für das Attribut GebDat der Wert NULL. Dieses ist aber ein Attribut mit dem Datentyp "Datum", so dass keine Texte dort erlaubt sind?!

Wenn für ein Attribut kein Wert definiert ist, dann wird der vordefinierte Wert NULL angenommen. Dieser stellt keinen Text dar, sondern ist ein Platzhalter für den undefinierten Wert.

In Bedingungen kann der Wert NULL explizit abgefragt werden, z.B. WHERE GebDat IS NULL bzw. WHERE GebDat IS NOT NULL (für alle Werte, die kein NULL enthalten).

Nicht alle Benutzer haben also ihr Geburtsdatum im sozialen Netzwerk hinterlegt. Mache dir klar, warum man nicht irgendein bestimmtes Datum (z.B. 1.1.1990) für ein unbekanntes Geburtsdatum abspeichern sollte.

Jetzt kannst du den SQL-Befehl oben sicher so verbessern, dass du alle Mainzer Benutzer findest, bei denen kein Datum angegeben wurde.

Tabelle mit Benutzern ohne Geburtsdatum (NULL-Wert in der Spalte GebDat)

Wertebereiche

Warum speichert man eigentlich nicht alles in der Datenbank in Attributen mit dem Datentyp "Text"?

In einem Versuch wurden die Geburtstage einmal als Text gespeichert.

Ein SQL-Befehl gibt jetzt die Benutzer aus und zwar nach dem Geburtstag sortiert.

Kannst du die seltsame Sortierung erklären?

Tabelle mit falscher Sortierung im Attribut GebDat, wenn dieses als Text gespeichert wird.

Der Wertebereich eines Attributes hat gravierende Auswirkungen vor allem auf die Sortierung von Datensätzen. So werden Datumsangaben als "Texte" auch wie diese sortiert (also ist 01.01.2014 kleiner als 31.12.1970, da 3 nach 0 kommt). Auch generell bei Zahlen spielt das eine Rolle (als Text ist dann 42 größer als 1134). Für Textfelder kann sogar die Art der Sortierung angegeben werden, die sich von Land zu Land unterscheiden kann.

Recherchiere doch einmal, welche Unterschiede allein die deutschsprechenden Staaten in Bezug auf die alphabetische Sortierung machen!

X

Fehler melden

X

Suche