Solo quiero saber cuál es el beneficio / uso de definir ZEROFILLpara INTDataType en MySQL?
`id` INT UNSIGNED ZEROFILL NOT NULL
mysql
types
unsigned-integer
diEcho
fuente
fuente

zerofillno es estándar. " ElZEROFILLatributo se ignora cuando una columna está involucrada en expresiones oUNIONconsultas. Si almacena valores mayores que el ancho de visualización en una columna entera que tiene elZEROFILLatributo, puede experimentar problemas cuando MySQL genera tablas temporales para algunas combinaciones complicadas. En estos casos , MySQL supone que los valores de datos se ajustan al ancho de visualización de la columna. "Respuestas:
Cuando selecciona una columna con tipo
ZEROFILL, rellena el valor visualizado del campo con ceros hasta el ancho de visualización especificado en la definición de columna. Los valores más largos que el ancho de visualización no se truncan. Tenga en cuenta que el uso deZEROFILLtambién implicaUNSIGNED.El uso
ZEROFILLy el ancho de la pantalla no tienen efecto sobre cómo se almacenan los datos. Afecta solo cómo se muestra.Aquí hay un ejemplo de SQL que demuestra el uso de
ZEROFILL:Resultado:
fuente
Un ejemplo para entender, donde el uso de
ZEROFILLpodría ser interesante:En Alemania, tenemos códigos postales de 5 dígitos. Sin embargo, esos códigos pueden comenzar con un cero, por lo que
80337es un código postal válido para munic,01067es un código postal de Berlín.Como puede ver, cualquier ciudadano alemán espera que los códigos postales se muestren como un código de 5 dígitos, por lo que se
1067ve extraño.Para almacenar esos datos, puede usar un
VARCHAR(5)oINT(5) ZEROFILLmientras que el entero lleno de cero tiene dos grandes ventajas:1067, todavía01067regresaQuizás este ejemplo ayude a comprender el uso de
ZEROFILL.fuente
Es una característica para personalidades perturbadas a las que les gustan las cajas cuadradas.
Inserta
pero cuando selecciona, rellena los valores
fuente
Ayuda en la ordenación correcta en el caso de que necesite concatenar este "entero" con otra cosa (otro número o texto) que deberá ordenarse como un "texto" en ese momento.
por ejemplo,
si necesita usar los números de campo entero (digamos 5) concatenados como A-005 o 10/0005
fuente
Sé que llego tarde a la fiesta, pero creo que el zerofill es útil para las representaciones booleanas de TINYINT (1). Nulo no siempre significa falso, a veces no lo quieres. Al rellenar con un minúsculo, está efectivamente convirtiendo esos valores a INT y eliminando cualquier confusión que su aplicación pueda tener sobre la interacción. Su aplicación puede tratar esos valores de manera similar al tipo de datos primitivo True = Not (0)
fuente
666lo que prefiero mantener esta respuesta tal como está;-)fuente
http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html
fuente
Si especifica ZEROFILL para una columna numérica, MySQL agrega automáticamente el atributo UNSIGNED a la columna.
Los tipos de datos numéricos que permiten el atributo UNSIGNED también permiten SIGNED. Sin embargo, estos tipos de datos están firmados de forma predeterminada, por lo que el atributo FIRMADO no tiene ningún efecto.
La descripción anterior está tomada del sitio web oficial de MYSQL.
fuente
CEROFILL
Esto significa esencialmente que si el valor entero 23 se inserta en una columna INT con un ancho de 8, el resto de la posición disponible se rellenará automáticamente con ceros.
Por lo tanto
se convierte en:
fuente