Was bedeutet der Null Wert bei phpmyadmin?
Hallo,
Man kann ja bei Standard null angeben und bei Null einen Hacken setzen.
Ich habe schon viele Definitionen gelesen, aber wirklich verstehen was es bewirken soll tue ich nicht.
Wäre schön, eine kleine Erklärung zu bekommen :)
2 Antworten
ganz einfach, wenn du keinen wert spezifizierst in der spalte, wird dieser beim hinzufügen von datensätzen zu "null" heißt, er wird nicht setzt. wenn du mit einer query die daten ausliest, sie dir also als string liefern lässt, steht dann dort eine "0" im string wo du in phpmyadmin "null" gesetzt hast.
hm komisch, bei mir wurde das so gemacht automatisch. also wenn ich einen wert auf "null" gesetzt habe wurde später beim auslesen der resultate da eine 0 draus
hast recht. es kommt nicht 0 sondern "null" zurück. ich hab das in der DB nur so als standard-wert angegeben das wenn man die spalte leer lässt, dass der standard wert 0 gesetzt wird aber nicht null
Wo wir gerade beim Thema sind
meine Lehrer haben es nicht wirklich hinbekommen das mit dem String zu erklären und im Netz bin ich auch nicht weit gekommen. Ist ein kompliziertes Thema haha
wärst du so freundlich, mir grad auch zu sagen, was das sein soll?
Da ist nichts kompliziert dran. Ein String ist ein Datentyp und bezeichnet einfach Textinhalt. Es ist eine Folge von Buchstaben.
In SQL gibt es hierfür verschiedene Datentypen.
Es gibt beispielsweise CHAR[Länge]. Feldwerte mit diesem Typ sind IMMER "Länge" Zeichen lang. Der Wert in einem Feld des Typs CHAR[10] ist immer 10 Zeichen lang, egal ob Du ein "a" reinschreibst oder "Hallo".
Dagegen ist die Länge bei VARCHAR variabel. Wenn Du einen Wert aus einer VARCHAR[10] Spalte ausliest, ist dieser genau so lang, wie das, was vorher reingeschrieben wurde.
ein String ist eine Zeichenfolge, sprich wörter oder sätze. "hello world" ist ein string. Ein String besteht aus Chars (Character) also buchstaben. char a = 'a';
Ganz einfach. Null bedeutet "hat keinen zugewiesenen/gültigen Wert". Das ist nicht dasselbe wie die Zahl "0" oder ein Leerstring oder ähnliches und kann auch nicht mit irgendetwas verglichen werden (denn es hat keinen Wert, der vergleichbar wäre). Auch wenn eine Spalte den Wert NULL halt, gilt: Spalte <> NULL, aber durchaus Spalte IS NULL.
Beachte: Nicht jede Spalte einer Tabelle ist unbedingt auch null-fähig. Man kann durchaus erzwingen, dass in einer Spalte niemals der Wert NULL stehen darf.
Das ist nicht korrekt. Erstens liefert eine Query nur dann Strings, wenn Du explizit zu Strings konvertierst. Ansonsten hat das Ergebnis genau den Datentyp der Spalte. Zweitens wird NULL niemals zu 0 oder sonstwas, außer Du fügst in der Query explizit sowas ein wie IFNULL(Spalte, "0").