Bonsoir tous le monde
j'ai lus dans le net que tinyint peut stocké un nombre entre -128 et 127.
Mais alors pourquoi on trouve dans des champs tinyint(3) ou tinyint(6);
est ce que la taille change??
Merci d'avance pour vos réponses:)
Version imprimable
Bonsoir tous le monde
j'ai lus dans le net que tinyint peut stocké un nombre entre -128 et 127.
Mais alors pourquoi on trouve dans des champs tinyint(3) ou tinyint(6);
est ce que la taille change??
Merci d'avance pour vos réponses:)
Dans le tableau figurant dans la doc de MySQL, je ne vois que TINYINT, codé sur 1 octet et couvrant effectivement une plage de valeurs de -128 à +127.
phpMyAdmin a la fâcheuse habitude d'afficher un nombre entre parenthèses même pour les types numériques qui n'en ont pas besoin (les entiers).
Je viens de créer une colonne de type TINYINT et phpMyAdmin affiche TINYINT(4).
Ça veut peut-être dire que la longueur est de 3 chiffres + le signe = 4 caractères ?
Ça ne sert à rien en gros !
Si je ne me trompe pas, c'est pour l'affichage. Car tu peux modifier cette valeur et la taille du champs ne change pas.
La taille du champs est définie par le type ( TINYINT, SMALLINT, INT, etc ) ... et aussi en fonction de s'il est UNSIGNED ou pas, mais bon, ne compliquons pas les choses.
Selon ce que j'avais lu, un champs INT 12 tentera ou s'attendra d'afficher les entiers sur 12 caractères.
Changer ce chiffre n'a aucune incidence au niveau du stockage de données, et comme on gère l'affichage via un language (PHP par exemple), ce formatage n'est pas pris en compte.
De la doc MySQL:
Citation:
If you assign a value to a BIT(M) column that is less than M bits long, the value is padded on the left with zeros. For example, assigning a value of b'101' to a BIT(6) column is, in effect, the same as assigning b'000101'.
Merci pour vos réponses :)