2011-04-21 8 views
12

Según el mySQL Docs, un tipo de datos de int (signed) tiene un rango de -2147483648 a 2147483647. Cuando creo una tabla con phpMyAdmin y exporto la tabla estructura muestra lo siguiente:tipos de datos mySQL: ¿por qué hay un número después de int: int (11)

`unit_id` int(11) NOT NULL 

¿Por qué el (11)? ¿No dice int a mySQL todo lo que necesita saber?

+0

Posible duplicado de [¿Qué significa realmente el número entre paréntesis?] (Https://stackoverflow.com/questions/4055564/what-does-the-number-in-parenthesis-really-mean) – Ivar

Respuesta

14

Este es el atributo opcional 'ancho', que las aplicaciones pueden usar para mostrar el valor.

Para citar el documentation:

MySQL soporta una extensión para especificar opcionalmente el ancho de la pantalla de tipos de datos enteros en paréntesis a continuación de la palabra clave de base para el tipo. Por ejemplo, INT(4) especifica un INT con una pantalla de ancho de cuatro dígitos. Las aplicaciones pueden usar este ancho de visualización opcional para mostrar valores enteros que tengan un ancho menor que el ancho especificado para la columna al margen izquierdo con espacios. (Eso es decir, esta anchura está presente en los metadatos devueltos con conjuntos de resultados. Tanto si se utiliza o no, depende de la aplicación).

El ancho de la pantalla hace no restringir la gama de valores que pueden ser almacenado en la columna. Tampoco impide que los valores más amplios que el ancho de la columna se muestren correctamente. Por ejemplo, una columna especificado como SMALLINT(3) tiene la SMALLINT gama habitual de -32768 a 32767, y los valores fuera del rango permitido por tres dígitos son muestra en su totalidad en más de tres dígitos.

+5

En otras palabras , el número entre paréntesis es puramente como una pista sobre cómo mostrar el número. Internamente, int siempre ocupa el mismo espacio de almacenamiento, ya sea que muestre 1 dígito o todos ellos. –

+0

completamente perdido, gracias. :) – Will

+3

hasta ahora estaba pensando en limitar el rango como 'varchar (100)' ... Nuevo hecho aprendido :) –

5

Establece el ancho de la pantalla que se devuelve con el conjunto de resultados. No tiene relación con el tamaño de almacenamiento.

Cuestiones relacionadas