Kann MySQL Typ INT sein nicht-null-NULL
Ich bin erstellen einer MySQL-DB, die aus wöchentlichen Daten setzt, geht zurück in den letzten zehn Jahren. Es gibt einige Daten, die Punkte, die es für den letzten Alben, aber die wurden nicht verfolgt, in einigen der älteren Datensätzen. Die Felder in Frage, die alle integer-Werte enthalten, und '0' ist ein absolut korrekter (und Häufig) Wert für die Datensätze, die Taten verfolgen, die Daten-Punkte. Ich muss in der Lage sein zu unterscheiden zwischen einem Wert null und nicht vorhandene Daten. Daher brauche ich, um herauszufinden, ob es möglich ist, zum speichern einer NULL, die ist nicht dargestellt als eine " 0 " (Lesen: LEERE ZELLE) für einen INT-Typ. Allerdings, die NULL-Werte an die DB dargestellt, die als '0' (immerhin sind Sie in phpMyAdmin), gibt es eine Möglichkeit dies zu ändern?
Vielen Dank für Ihre Hilfe.
- Ich denke, man sollte zulassen, dass die Spalte null-Werte enthalten. Aber die kurze Antwort ist: ja, int Spalten können NULL-Werte.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie den Wert auf NULL.
INSERT INTO table (INT_COLUMN) VALUES (NULL)
gültig ist SQL (mit INT_COLUMN ein nullable int Spalte).nullable
ALTER TABLE table MODIFY column int null;
sollte die Spalte null-Werte akzeptiert.Die Antwort ist "ja" - Sie können nullable int-Spalten. Aber sollte Sie?
Allzu oft
null
missbraucht und missverstanden wird. In SQL-Datenbanken,null
bedeutet "unbekannt". In Ihrer situation, mitnull
ist perfekt, also "ja - Sie sollten"Gibt es Fälle, wenn Sie wollen, um einen bestimmten Wert für "null", zum Beispiel
-1
für eine Menge. Dieser Ansatz ist gültig und wird verwendet, um die Anwendung zu vereinfachen code und SQL, weil der Umgang mit null-Werte in Abfragen ist ein Schmerz in den Arsch:WHERE NAME IN (SELECT COL1 FROM SOMETABLE)
wird nie funktionieren, wenn einer der ausgewählten Werte wird nullSUM()
oderAVG()
Ausbeute falsche Ergebnisse, wenn Sie einige-1
Werte drin.Ja, werden Sie sicher, dass Ihre Tabelle ist so konzipiert, dass NULL-Werte in der betreffenden Spalte. Siehe die sehr einfache Beispiel unten:
Den auswählen, wird das folgende Ergebnis: