Ich möchte nur wissen, welchen Nutzen / welche Verwendung das Definieren ZEROFILL
für INT
DataType in hat MySQL
.
`id` INT UNSIGNED ZEROFILL NOT NULL
mysql
types
unsigned-integer
diEcho
quelle
quelle
zerofill
nicht dem Standard entspricht. " DasZEROFILL
Attribut wird ignoriert, wenn eine Spalte an Ausdrücken oderUNION
Abfragen beteiligt ist. Wenn Sie Werte, die größer als die Anzeigebreite sind, in einer Ganzzahlspalte mit demZEROFILL
Attribut speichern , können Probleme auftreten, wenn MySQL temporäre Tabellen für einige komplizierte Verknüpfungen generiert. In diesen Fällen , MySQL geht davon aus, dass die Datenwerte in die Spaltenanzeigebreite passen. "Antworten:
Wenn Sie eine Spalte mit Typ auswählen
ZEROFILL
, wird der angezeigte Wert des Felds mit Nullen bis zur in der Spaltendefinition angegebenen Anzeigebreite aufgefüllt. Werte, die länger als die Anzeigebreite sind, werden nicht abgeschnitten. Beachten Sie, dass die Verwendung vonZEROFILL
auch impliziertUNSIGNED
.Die Verwendung
ZEROFILL
und eine Anzeigebreite haben keinen Einfluss darauf, wie die Daten gespeichert werden. Es wirkt sich nur darauf aus, wie es angezeigt wird.Hier ist ein Beispiel für SQL, das die Verwendung von Folgendes demonstriert
ZEROFILL
:Ergebnis:
quelle
Ein Beispiel, um zu verstehen, wo die Verwendung von
ZEROFILL
interessant sein könnte:In Deutschland haben wir 5-stellige Postleitzahlen. Diese Codes können jedoch mit einer Null beginnen. Dies
80337
ist eine gültige Postleitzahl für Munic.01067
eine Postleitzahl von Berlin.Wie Sie sehen, erwartet jeder deutsche Staatsbürger, dass die Postleitzahlen als 5-stellige Code angezeigt werden
1067
sieht also seltsam aus.Um diese Daten zu speichern, können Sie ein
VARCHAR(5)
oder verwenden,INT(5) ZEROFILL
während die nullgefüllte Ganzzahl zwei große Vorteile hat:1067
, erhalten Sie immer noch01067
zurückVielleicht hilft dieses Beispiel beim Verständnis der Verwendung von
ZEROFILL
.quelle
Es ist eine Funktion für gestörte Persönlichkeiten, die quadratische Kästchen mögen.
Sie fügen ein
Wenn Sie jedoch auswählen, werden die Werte aufgefüllt
quelle
Es hilft bei der korrekten Sortierung, wenn Sie diese "Ganzzahl" mit etwas anderem (einer anderen Zahl oder einem anderen Text) verketten müssen, das dann als "Text" sortiert werden muss.
beispielsweise,
wenn Sie die Integer - Feld Zahlen verwenden müssen (sie 5 sagen) verketteten als A-005 oder 10/0005
quelle
Ich weiß, dass ich zu spät zur Party komme, aber ich finde, dass die Nullfüllung für boolesche Darstellungen von TINYINT (1) hilfreich ist. Null bedeutet nicht immer Falsch, manchmal möchte man es nicht. Indem Sie einen winzigen Wert auf Null setzen, konvertieren Sie diese Werte effektiv in INT und beseitigen alle Verwirrungen, die Ihre Anwendung bei der Interaktion haben kann. Ihre Anwendung kann diese Werte dann ähnlich wie den primitiven Datentyp True = Not (0) behandeln.
quelle
666
also würde ich es vorziehen, diese Antwort so zu belassen, wie sie ist;-)
quelle
http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html
quelle
Wenn Sie ZEROFILL für eine numerische Spalte angeben, fügt MySQL der Spalte automatisch das Attribut UNSIGNED hinzu.
Numerische Datentypen, die das Attribut UNSIGNED zulassen, erlauben auch SIGNED. Diese Datentypen sind jedoch standardmäßig signiert, sodass das Attribut SIGNED keine Auswirkung hat.
Die obige Beschreibung stammt von der offiziellen MYSQL-Website.
quelle
NULLFÜLLEN
Dies bedeutet im Wesentlichen, dass, wenn der ganzzahlige Wert 23 in eine INT-Spalte mit der Breite 8 eingefügt wird, der Rest der verfügbaren Position automatisch mit Nullen aufgefüllt wird.
Daher
wird:
quelle