Quando devo usar UNSIGNED e SIGNED INT no MySQL? O que é melhor usar ou isso é apenas preferência pessoal? Porque eu já vi ser usado assim;
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT
e
id INT(11) NOT NULL AUTO_INCREMENT
Quando devo usar UNSIGNED e SIGNED INT no MySQL? O que é melhor usar ou isso é apenas preferência pessoal? Porque eu já vi ser usado assim;
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT
e
id INT(11) NOT NULL AUTO_INCREMENT
Respostas:
UNSIGNEDarmazena apenas números positivos (ou zero). Por outro lado, assinado pode armazenar números negativos (ou seja, pode ter um sinal negativo ).
Aqui está uma tabela dos intervalos de valores que cada INTEGERtipo pode armazenar:

Fonte: http://dev.mysql.com/doc/refman/5.6/en/integer-types.html
UNSIGNEDvaria de 0a n, enquanto o sinalizado varia de aproximadamente -n/2a n/2.
Nesse caso, você tem uma AUTO_INCREMENTcoluna de ID, portanto, não terá negativos. Portanto, use UNSIGNED. Se você não usar UNSIGNEDpara a AUTO_INCREMENTcoluna, seu valor máximo possível será a metade maior (e a metade negativa do intervalo de valores não será usada).
UNSIGNEDé específico do MySQL e não um recurso SQL padrão. Isso significa que o uso UNSIGNEDpode tornar uma migração futura para um RDBMS diferente mais complicada ou causar dificuldades ao usar bibliotecas de software voltadas para SQL padrão, como SQLAlchemy. Acho que isso deve ser parte da resposta.
Use UNSIGNEDpara números inteiros não negativos.
Não concordo com o vipin cp .
A verdade é que o primeiro bit é usado para representar o sinal. Mas 1 é para valores negativos e 0 é para valores positivos. Mais valores negativos são codificados de maneira diferente (complemento de dois). Exemplo com 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 valores inteiros negativos, SIGNEDé usado e para valores inteiros não negativos, UNSIGNEDé usado. Sempre sugeriu usar UNSIGNEDpara id como uma CHAVE PRIMÁRIA.
Se você souber o tipo de número que armazenará, poderá escolher de acordo. Neste caso, você tem 'id', que nunca pode ser negativo. Portanto, você pode usar o int sem sinal. Intervalo de int com sinal: -n / 2 a + n / 2 Intervalo de int sem sinal: 0 a n Portanto, você tem o dobro do número de números positivos disponíveis. Escolha de acordo.