mysql types int unsigned-integer

bigint unsigned mysql



MySQL datatype INT(11) mientras que UNSIGNED INT(10)? (3)

En caso de que alguien no entienda bien la respuesta de Shakti (como no lo hice). Aquí hay una representación visual de por qué:

Signed minimum: - 2 1 4 7 4 8 3 6 4 8 1 2 3 4 5 6 7 8 9 10 11 Unsigned max (also the signed max): 4 2 9 4 9 6 7 2 9 5 1 2 3 4 5 6 7 8 9 10

en MySQL, si creamos un campo dataType de INT y no especifica ninguna longitud / valores, se convertirá automáticamente en int(11) y si establecemos el atributo UNSIGNED o UNSIGNED ZEROFILL, se convertirá en int(10)

¿A dónde va esta longitud (1) ?


Según http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html , este número es simplemente el ancho de la pantalla .

Por ejemplo, INT (4) especifica una INT con un ancho de visualización de cuatro dígitos.

El ancho de visualización no limita el rango de valores que se pueden almacenar en la columna . Tampoco impide que los valores más anchos que el ancho de visualización de la columna se muestren correctamente. Por ejemplo, una columna especificada como SMALLINT (3) tiene el rango SMALLINT habitual de -32768 a 32767, y los valores fuera del rango permitido por tres dígitos se muestran completos usando más de tres dígitos.

El ancho de visualización predeterminado para una INT UNSIGNED INT es uno menos que el de una INT UNSIGNED INT simplemente porque nunca se mostrará un carácter.

Tenga en cuenta que todavía puede especificar el ancho de visualización que desee. Esto es sólo el valor predeterminado .

El uso del término "dígitos" en la documentación es un poco engañoso aquí.


el valor int puede ser -2147483648, son 11 dígitos, por lo que el tamaño de pantalla predeterminado es 11

unsigned int no permite números negativos, por lo que de manera predeterminada solo necesita mostrar el tamaño 10

Como se muestra en la siguiente documentación, el número de bits necesarios para almacenar SIGNED INT y UNSIGNED INT es el mismo, el rango de los números que se pueden almacenar simplemente se modifica:

El tipo sin signo se puede usar para permitir solo números no negativos en una columna o cuando necesite un rango numérico superior más grande para la columna. Por ejemplo, si una columna INT NO ESTÁ FIRMADA, el tamaño del rango de la columna es el mismo pero sus puntos finales cambian de -2147483648 y 2147483647 a 0 y 4294967295.

http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html