Préjugés sur les entiers sous MySQL

Catégorie : Programmation
(3 votes)
Auteur : Perfect Slayer Date : 26/12/07 à 13H28

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 !

Aucun commentaire - Écrire une nouvelle réaction -

- Consulter les dernières actualités (de cette catégorie) -
 
Admin