Votre solution à la confusion est-
Dans Mysql , int(6) ne signifie pas qu'ils peuvent stocker jusqu'à 6 chiffres. pas plus de 999999.
Cependant CHAR(6)Cela signifie une colonne de caractères, d'une longueur maximale de 6 caractères, comme ces mots :
maisons
Si j'essayais de stocker le mot "spécial" dans cette colonne, MySQL hacherait la valeur en "spécia", puisque le mot d'origine a 7 caractères.
Quoi qu'il en soit, les colonnes entières ont toutes une plage prédéfinie de valeurs autorisées. Le nombre entre parenthèses indique uniquement la largeur d'affichage.
C'est probablement encore déroutant, alors laissez-moi vous expliquer davantage…
La largeur d'affichage est un nombre compris entre 1 et 255. Vous pouvez définir la largeur d'affichage si vous souhaitez que toutes vos valeurs entières "apparaissent" de la même manière :
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
M indique la largeur d'affichage maximale pour les types entiers. La largeur d'affichage maximale est de 255. La largeur d'affichage n'est pas liée à la plage de valeurs qu'un type peut contenir, . Pour les types à virgule flottante et à virgule fixe, M est le nombre total de chiffres pouvant être stockés.
Si vous spécifiez ZEROFILL pour une colonne numérique, MySQL ajoute automatiquement l'attribut UNSIGNED à la colonne.
Donc, la réponse à votre question est
create table foo
(
col2 tinyint(2) unsigned zerofill, col4 tinyint(4) unsigned zerofill, col5notzerofill tinyint(5)
)engine=innodb;
insert into foo values (1,2,3),(11,12,14),(123,123,156),(1234,1234,12756);
select * from foo;
OUTPUT :-
+------+------+-----------------+
| col2 | col4 | col5notzerofill |
+------+------+-----------------+
| 01 | 0002 | 3 |
| 11 | 0012 | 14 |
| 123 | 0123 | 127 |
| 255 | 0255 | 127 |
+------+------+-----------------+
* Alors, comprenez, dans Mysql, la largeur d'affichage ne fonctionne qu'avec zerofill.
*si vous utilisez n'utilisez pas zerofill, ce n'est pas efficace.
Et si vous utilisez zerofill, mysql vérifiera display widht , et si vous ne l'attribuez pas, mysql attribuera automatiquement display-width à cette colonne. *