Null: Unterschied zwischen den Versionen

Aus KGS-Wiki
(Beispiel angefangen)
(Erweitert)
 
Zeile 2: Zeile 2:


<code>null</code> ist nicht dasselbe wie die Zahl 0 oder eine leere Zeichenkette. Eine leere Zeichenkette ist ein leeres ''Etwas'', <code>null</code> ist ''nichts''.
<code>null</code> ist nicht dasselbe wie die Zahl 0 oder eine leere Zeichenkette. Eine leere Zeichenkette ist ein leeres ''Etwas'', <code>null</code> ist ''nichts''.
== Programmierung ==


Nullwerte sind eine häufige Fehlerquelle beim Programmieren, wenn man etwa die Länge eines [[String (Datentyp)|String]]s abfragen möchte, aber dieser String nicht existiert, also <code>null</code> ist. Ein Beispiel in Java:
Nullwerte sind eine häufige Fehlerquelle beim Programmieren, wenn man etwa die Länge eines [[String (Datentyp)|String]]s abfragen möchte, aber dieser String nicht existiert, also <code>null</code> ist. Ein Beispiel in Java:
Zeile 12: Zeile 14:
}
}
</syntaxhighlight>
</syntaxhighlight>
In diesem Beispiel wird die [[Unterprogramm#Methode|Methode]] <code>length</code> der [[Klasse (Informatik)|Klasse]]<code>String</code> verwendet. Das <code>null</code>-Objekt gehört dieser Klasse aber nicht an und verfügt darum nicht über diese Methode.
In diesem Beispiel wird die [[Unterprogramm#Methode|Methode]] <code>length</code> der [[Klasse (Informatik)|Klasse]]<code>String</code> verwendet. Das <code>null</code>-Objekt gehört dieser Klasse aber nicht an und verfügt darum nicht über diese Methode. Beim Ablauf des Programms ereignet sich darum eine <code>NullPointerException</code>.
 
== Datenbanken ==
 
In SQL dürfen prinzipiell alle [[Attribut (Informatik)|Attribut]]e in einer [[Relation]] auf <code>NULL</code> gesetzt werden. Das kann sehr sinnvoll sein. Man kann aber auch explizit mit der Bedingung <code>NOT NULL</code> verbieten, dass Attribute auf <code>NULL</code> gesetzt werden.
{{Beispiel|Eine Relation <code>Person</code> hat die Spalten <code>Name</code>, <code>Geburtsdatum</code> und <code>Sterbedatum</code>. Noch lebende Personen können nur abgespeichert werden, wenn das <code>Sterbedatum</code> <code>NULL</code> sein darf. Zugleich sollte das Geburtsdatum aber nicht <code>NULL</code> sein dürfen.}}
 
== Weblinks ==
 
* {{W3Schools|sql/sql_null_values.asp|SQL NULL values}}


{{Todo}}
[[Kategorie:Programmierung]]
[[Kategorie:Datenbanken]]

Aktuelle Version vom 19. April 2024, 20:36 Uhr

null ist in der Informatik eine verbreitete Bezeichnung für nicht vorhandene Werte. In manchen Programmiersprachen und Datenbanksystemen sind auch andere Bezeichnungen wie nil (Redis, Ruby), None (Python) oder Nothing (Haskell) gebräuchlich.

null ist nicht dasselbe wie die Zahl 0 oder eine leere Zeichenkette. Eine leere Zeichenkette ist ein leeres Etwas, null ist nichts.

Programmierung

Nullwerte sind eine häufige Fehlerquelle beim Programmieren, wenn man etwa die Länge eines Strings abfragen möchte, aber dieser String nicht existiert, also null ist. Ein Beispiel in Java:

public boolean isValidIBAN(String maybeIBAN) {
  if (maybeIBAN.length() != 22) {
    return false;
  }
  // weitere Tests...
}

In diesem Beispiel wird die Methode length der KlasseString verwendet. Das null-Objekt gehört dieser Klasse aber nicht an und verfügt darum nicht über diese Methode. Beim Ablauf des Programms ereignet sich darum eine NullPointerException.

Datenbanken

In SQL dürfen prinzipiell alle Attribute in einer Relation auf NULL gesetzt werden. Das kann sehr sinnvoll sein. Man kann aber auch explizit mit der Bedingung NOT NULL verbieten, dass Attribute auf NULL gesetzt werden.

💬
Beispiel

Eine Relation Person hat die Spalten Name, Geburtsdatum und Sterbedatum. Noch lebende Personen können nur abgespeichert werden, wenn das Sterbedatum NULL sein darf. Zugleich sollte das Geburtsdatum aber nicht NULL sein dürfen.

Weblinks