# Null in SQL



## miketech (13. Aug 2007)

Hi zusammen,

ich habe mal eine Frage zu SQL, im Speziellen zum Wert "NULL".

Wie geht Ihr denn damit um? Was bedeutet für Euch NULL?

Ich habe es bisher immer so gehandhabt, dass NULL ein Sonderfall ist, wie z.B. ein NULL-Pointer. Wenn ein String leer ist, ist er einfach "" und nicht NULL. Das resultiert darin, dass ca. 95% meiner Felder mit NOT NULL deklariert sind. NULL lasse ich nur selten zu.

Nun habe ich zur Zeit etwas mit Access zu tun und wenn ich hier ein Feld vom Typ String auf einen leeren String setzen möchte ist der Wert NULL und nicht "".

Wie ist es denn üblich? Macht man es vielleicht immer so, dass NULL == Leere Zeichenkette == Nicht belegt? 

Gruß

Mike


----------



## Tobias (13. Aug 2007)

NULL == nicht bekannt. Angenommen ich speichere Personen und bei einer Person ist die Telefonnummer nicht bekannt. Dann speichere ich bei dieser Person nicht einen leeren String, sondern NULL als Telefonnummer. Ein leerer String kann dann zum Beispiel heißen "besitzt kein Telefon".

mpG
Tobias


----------



## miketech (13. Aug 2007)

Oh ok  Ich habe hier dann immer einfach "" vergeben. Das erklärt dann auch, wieso Access hier etwas unzufrieden ist. 

Gruß

Mike


----------



## MASTERmind (14. Aug 2007)

Telefonnummern speichert man in einem richtigen DB-System ja eher als varchar. Ich würde nie ein NULL für kein Telefon abspeichern, weil wie willst Du das abgreifen mit einer richtigen PRogrammiersprache wie zum Beispiel Java???

if(!equalsIgnoreCase("NULL")).....übel übel...wenns n varchar akzeptiert schrieb doch 0 oder so rein oder keins...aber nicht null...da ist es kein wunder dass man durcheinander kommt!

==> null-Objekt


----------



## Tobias (14. Aug 2007)

Äh, so?


```
String tel = resultset.getString("telefon");
if(tel == null) {
    System.out.println("Telefonnummer unbekannt!");
}
else {
    System.out.println(tel);
}
```

mpG
Tobias


----------



## miketech (14. Aug 2007)

Hi,

d.h. eine leere Telefonnummer ist bei Dir nicht NULL? Access speichert wie gesagt ein leeres Textfeld immer als NULL. In Java gibt es doch bestimmt Möglichkeiten ein Feld auf NULL zu prüfen. 

Gruß

Mike

Edit: Zu spät


----------

