2012-07-19 27 views
12

INT(1) - Lo sé, 1 no significa 1 dígito, representa el formato de visualización de salida del cliente solamente.¿Qué significa INT (1) en MySQL?

pero lo que hace esto significa

he declarado YEAR como int(1), sigo viendo los 4 bytes. por favor dime que significa INT(1)?

SELECT * FROM TEST_USERDB; 
+----+--------+------+ 
| ID | NAME | YEAR | 
+----+--------+------+ 
| 1 | abcccc | 2012 | 
| 2 | stack | 99 | 
+----+--------+------+ 
+4

http://alexander.kirk.at/2007/08/24/what-does-size-in-intsize-of-mysql-mean/ hace un buen trabajo de explicar que –

+0

Por cierto: MySQL tiene un [tipo de datos 'AÑO'] (http://dev.mysql.com/doc/refman/5.0/en/year.html) ... – feeela

+0

Depende de la aplicación del cliente cómo interpretar el 'ancho de visualización' pasado con metadata El parámetro no restringe el valor de la columna – a1ex07

Respuesta

18

Un unsigned int tiene el valor máximo de 4294967295 no importa si su INT(1) o int(10) y utilizará 4 bytes de datos.

Entonces, ¿qué significa el número entre paréntesis? Viene casi al hacia abajo para mostrar, se llama ancho de pantalla. El ancho de la pantalla es un número de de 1 a 255. Puede configurar el ancho de la pantalla si desea que todos sus valores "aparezcan". Si habilita zerofill en la fila, , el campo tendrá un valor predeterminado de 0 para int(1) y 0000000000 para int(10).

Read more

+1

. ¿Quiere decir que 1 en int (1) solo tiene sentido si utilizo Autocompletar? – chicharito

+2

Por supuesto, solo se usa si utiliza 'UNSIGNED' y' ZEROFILL' con un * integer type *. Pude encontrar que se menciona [aquí] (http://everythingmysql.ning.com/profiles/blogs/data-type-confusion-what-is-an). – Lion