2010-02-05 4 views
1

En phpmyadmin il y a une longueur de champ que vous pouvez spécifier, généralement fixé à 11 sur INT si rien n'est spécifié.Comment prédire/calculer la longueur de champ de valeurs numériques (INT) dans MySQL?

Field Name: ID 
    Field Type: INT(11) // This is what I need to figure out! 

Comment puis-je calculer la longueur, et qu'est-ce que la longueur représente réellement? Cela signifie-t-il combien de chiffres? Bytes?

Et est Unsigned et signé a à voir avec cela?

Merci

Répondre

-1

La longueur du champ est la longueur pur de caractères, un int (11) peut stocker des onze chiffres (F.E. 11111111111). Signé signifie que l'entier peut avoir une valeur négative (de -36768 à 36768), non signifié signifie qu'il n'a pas de signe et ne peut stocker que des valeurs positives (de 0 à 65536) .

+0

Est-ce que la longueur de chiffres incluent la signe +/-? La plage MySql INT est de 10 chiffres sans le signe. – ron

+2

Je suis désolé, mais en disant que "un int (11) peut stocker onze chiffres (f 11 111111111)" est fou. S'il vous plaît lire la page de manuel MySQL visé à l'http://stackoverflow.com/questions/2206122/how-to-predict-calculate-field-length-of-numeric-values-int-in-mysql/2206181#2206181 – Rowlf

1

Le type du champ (TINYINT, MEDIUMINT, INT, etc.) détermine la taille maximale de l'entier que vous pouvez mettre dans un tel domaine. Non signé signifie que vous ne voulez stocker que des nombres supérieurs à zéro. Voici une table de référence pour les types numériques dans MySQL et leurs limites: MySQL Manual - Numeric Types.

Si vous définissez le champ comme non signé, vous obtenez le même nombre de valeurs possibles, mais elles ne seront pas divisées 50-50 entre les nombres négatifs et positifs, comme vous le verrez dans le tableau.

Le nombre entre parenthèses est le nombre qui est utilisé si vous spécifiez ZEROFILL sur le terrain - ce qui est utile si vous avez besoin de vos chiffres avec des zéros à rembourrées une certaine longueur. Par exemple, si vous créez un nouveau champ comme INT(5) ZEROFILL, il affiche les nombres pour vous

00001 
00002 
00003 
etc. 

mais la gamme sera encore de -2147483648 à 2147483648. Le nombre entre parenthèses est ignoré si vous ne spécifiez pas ZEROFILL lorsque vous définissez le champ.

Questions connexes