Lors de la conception de champs de table MySQL, int(5) signifie-t-il que la longueur du champ est de 5 ?
Si vous le pensez, continuez à lire, je pense que vous gagnerez quelque chose de nouveau.
Nous créons une nouvelle table avec un seul identifiant de clé primaire et un seul champ de longueur, où le champ de longueur est défini sur int(5).
#新建test表 CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `length` int(5) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
Est-il vrai que le champ de longueur ne peut stocker que des nombres d'une longueur maximale de 5 ? Essayons d'insérer une donnée.
Nous insérons une donnée plus grande 123456789. Ces données ont un total de 9 chiffres pour voir si elles peuvent être insérées normalement.
#插入一条大数据 insert into test (length) values (123456789);
Il s'avère que int(5) peut insérer des données d'une longueur supérieure à 5, il est donc maintenant certain que int(5) ne représente pas la largeur des données.
#查看插入数据 mysql> select * from test; +------------+-----------+ | id | length | +------------+-----------+ | 1 | 123456789 | +------------+-----------+
Dans MySQL, la longueur du champ int est en fait fixe, soit 4 octets. Que vous utilisiez int(11) ou int(5), la longueur du champ est fixée à 4 octets.
int(5) est en fait utilisé en conjonction avec un autre attribut zerofill, ce qui signifie que si la largeur de la valeur du champ est inférieure à 5, elle sera automatiquement complétée par 0 devant si la largeur est supérieure ou égale. à 5, il n'est pas nécessaire de compléter 0.
#int(5) length 字段添加了 zerofill 属性 mysql> select * from test; +----+--------+ | id | length | +----+--------+ | 1 | 00888 | | 2 | 00012 | | 3 | 12345 | | 4 | 123456 | +----+--------+
Notez que l'attribut zerofill doit être ajouté à ce champ, sinon int(5) ne fonctionnera pas.
#int(5) length 字段没有 zerofill 属性 mysql> select * from test; +----+--------+ | id | length | +----+--------+ | 1 | 888 | | 2 | 12 | | 3 | 12345 | | 4 | 123456 | +----+--------+
Si vous souhaitez définir la longueur d'un champ entier, vous devez choisir les types suivants : tinyint, smallint, mediumint, int, bigint. Ces types entiers représentent des longueurs fixes. Veuillez consulter le tableau ci-dessous pour la longueur spécifique.
Notez que si vous souhaitez stocker des entiers signés, l'attribut zerofill n'est pas pris en charge et sera automatiquement converti en 0. Cela doit être pris en compte dans certaines entreprises impliquant une décrémentation.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!