J'écris ce petit article pour que l'on arrête de se méprendre sur le paramètre de description des entiers sous MySQL. En effet, que l'on choisisse INT(4) ou INT(11), cela consommera autant de place. Ce paramètre ne réduit en rien la mémoire dont nécessitera ce champ : il sert juste pour l'affichage ! En effet, dans le cas d'un INT(4), si vous récupérer un nombre de moins de quatre chiffres, il sera complété par le caractère par défaut.
Un exemple tout de suite :
mysql> CREATE TABLE test (entier INT(4) ZEROFILL);
Query OK, 0 rows affected
Nous voici avec une table d'un champ "entier" du type INT(4) ZEROFILL. J'utilise ici ZEROFILL pour spécifier le zéro comme caractère de remplissage par défaut.
mysql> INSERT INTO test VALUES (1);
Query OK, 1 row affected
SELECT `entier` FROM a;
+------+
| a |
+------+
| 0001 |
+------+
Comme le voyez, l'entier est complété pour avoir quatre chiffres au final.
Pour rappel, voici les capacités des différents champs pouvant accueillir des entiers :
| TYPE |
Intervalle signé |
Intervalle non-signé |
| TINYINT |
-128 à 127 |
0 à 255 |
| BIT, BOOL, BOOLEAN |
Equivalent à TINYINT(1) |
| SMALLINT |
-32768 à 32767 |
0 à 65535 |
| MEDIUMINT |
-8388608 à 8388607 |
0 à 1677721 |
| INT, INTEGER |
-2147483648 à 2147483647 |
0 à 4294967295 |
| BIGINT |
-9223372036854775808 à 9223372036854775807 |
0 à 18446744073709551615 |
Par contre, en ce qui concerne les flottants, le paramètre, voir les paramètres, servent bien à définir la précision. Voilà pour la petite correction. Sur ce, bon développement à vous !
|