Dans les définitions de table MySQL, y a-t-il une différence entre INT(5)
et SMALLINT(5)
? Ou représentent-ils tous les deux la même taille?
An int
et a smallint
ont des tailles et des plages différentes.
Le (5)
est smallint(5)
ou int(5)
est appelé « Type numérique d' attributs » et représente la « largeur d'affichage » du champ,
MySQL prend en charge une extension pour spécifier éventuellement la largeur d'affichage des types de données entiers entre parenthèses après le mot-clé de base pour le type. Par exemple,
INT(4)
spécifie unINT
avec une largeur d'affichage de quatre chiffres. Cette largeur d'affichage facultative peut être utilisée par les applications pour afficher des valeurs entières ayant une largeur inférieure à la largeur spécifiée pour la colonne en les remplissant à gauche avec des espaces. (C'est-à-dire que cette largeur est présente dans les métadonnées renvoyées avec les jeux de résultats. Qu'elle soit utilisée ou non dépend de l'application.)Lorsqu'il est utilisé conjointement avec l'attribut facultatif (non standard)
ZEROFILL
, le remplissage par défaut des espaces est remplacé par des zéros. Par exemple, pour une colonne déclarée commeINT(4) ZEROFILL
, une valeur de5
est récupérée comme0005
.
Il s'agit d'une "extension" MySQL, et zerofill est une "extension" sur une extension.
Pour la méthode saine de contrôle de l'affichage d'un type numérique, n'utilisez pas les attributs de type numérique et utilisez plutôt