Quelle est la différence en int(11)
et int(11) UNSIGNED
?
Réponses
Trop de publicités?Un type non signé ne peut pas être négative, mais d'un autre côté, il a deux fois plus grande gamme pour les entiers positifs. Le type TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT ont tous signés et non signés versions.
Pour INT les plages sont définies comme suit:
Type Storage Min Max
INT 4 -2147483648 2147483647
INT UNSIGNED 4 0 4294967295
Les entiers signés et non signés prendre le même espace de stockage (4 octets pour un INT).
Voir la documentation pour plus de détails.
UNSIGNED
, c'est exactement cela, tout est positif (pas de signe) numéros. La taille des octets est le même, mais si vos données n'est jamais négatif, vous pouvez obtenir de plus grands nombres positifs en dehors de ça. Le 11 est la valeur par défaut du nombre de caractères qu'il va récupérer et afficher. Pour la taille exacte, de faire une recherche pour le SGBD que vous utilisez et le type.
Tous les types d'entiers peuvent avoir une option (non standard) attribut UNSIGNED. Type non signé peut être utilisé pour autoriser uniquement les nombres positifs dans une colonne ou lorsque vous avez besoin d'un plus haut de plage numérique de la colonne. Par exemple, si une colonne INT est pas signé, la taille de la colonne de la gamme est la même, mais ses points de terminaison passage de -2147483648 et 2147483647 0 et 4294967295.
voir ici: http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html