¿Cuándo debo usar INT NO FIRMADO y FIRMADO en MySQL? ¿Qué es mejor usar o esto es solo preferencia personal? Porque lo he visto usado así;
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT
y
id INT(11) NOT NULL AUTO_INCREMENT
¿Cuándo debo usar INT NO FIRMADO y FIRMADO en MySQL? ¿Qué es mejor usar o esto es solo preferencia personal? Porque lo he visto usado así;
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT
y
id INT(11) NOT NULL AUTO_INCREMENT
Respuestas:
UNSIGNEDsolo almacena números positivos (o cero). Por otro lado, con signo puede almacenar números negativos (es decir, puede tener un signo negativo ).
Aquí hay una tabla de los rangos de valores que cada INTEGERtipo puede almacenar:

Fuente: http://dev.mysql.com/doc/refman/5.6/en/integer-types.html
UNSIGNEDvaría de 0a n, mientras que con signo varía de aproximadamente -n/2a n/2.
En este caso, tiene una AUTO_INCREMENTcolumna de ID, por lo que no tendría negativos. Por lo tanto, use UNSIGNED. Si no lo usa UNSIGNEDpara la AUTO_INCREMENTcolumna, su valor máximo posible será la mitad de alto (y la mitad negativa del rango de valores no se usará).
UNSIGNEDes específico de MySQL y no una característica estándar de SQL. Esto significa que el uso UNSIGNEDpuede complicar una futura migración a un RDBMS diferente o causarle dificultades al usar bibliotecas de software dirigidas a SQL estándar, como SQLAlchemy. Creo que esto debería ser parte de la respuesta.
Úselo UNSIGNEDpara números enteros no negativos.
No estoy de acuerdo con vipin cp .
Lo cierto es que el primer bit se utiliza para representar el signo. Pero 1 es para valores negativos y 0 para valores positivos. Los valores más negativos se codifican de forma diferente (complemento a dos). Ejemplo con TINYINT:
The sign bit
|
1000 0000b = -128d
...
1111 1101b = -3d
1111 1110b = -2d
1111 1111b = -1d
0000 0000b = 0d
0000 0001b = 1d
0000 0010b = 2d
...
0111 1111b = 127d
Para valor entero negativo, SIGNEDse usa y para valor entero no negativo, UNSIGNEDse usa. Siempre sugirió usar UNSIGNEDfor id como CLAVE PRIMARIA.
Si conoce el tipo de números que va a almacenar, puede elegir en consecuencia. En este caso, tienes un 'id' que nunca puede ser negativo. Entonces puedes usar unsigned int. Rango de int con signo: -n / 2 a + n / 2 Rango de int sin signo: 0 a n Por lo tanto, tiene el doble de números positivos disponibles. Elija en consecuencia.