Maison  >  Article  >  base de données  >  Que représente int(11) dans MYSQL

Que représente int(11) dans MYSQL

小云云
小云云original
2017-12-19 16:13:262324parcourir

Je dois souvent gérer MySQL au travail, mais j'ai toujours eu une vague compréhension des différents types de champs de MySQL. Que représente int(11) dans MYSQL ? Vous ne le savez peut-être pas très bien, j'ai donc écrit cet article pour le résumer et l'enregistrer.

Que représente int(11) dans MYSQL

En fait, certaines connaissances de base du type int ont été expliquées très clairement dans l'image ci-dessus, j'aimerais discuter ici de ce qui est couramment utilisé. int(11) représentants. Qu'est-ce que cela signifie ? Pendant longtemps, j'ai pensé que cela signifiait limiter la longueur de int à 11 chiffres. Ce n'est que lorsque j'ai lu un article un jour que j'ai réalisé que 11 ne représentait pas la longueur. , mais la largeur d'affichage du caractère , lorsque le type de champ est int, peu importe combien vous définissez la largeur d'affichage, les valeurs maximales et minimales que le type int peut stocker sont toujours corrigé. Voici quelques extraits de texte originaux

Le nombre entre parenthèses ne détermine pas les valeurs max et min pouvant être stockées dans le champ entier. être stockées sont toujours fixes.

La largeur d'affichage de la colonne n'affecte pas la valeur maximale qui peut être stockée dans cette colonne. Une colonne avec INT(5) ou INT(11) peut également stocker les mêmes valeurs maximales. si vous avez une colonne INT(20), cela ne signifie pas que vous pourrez stocker des valeurs à 20 chiffres (valeurs BIGINT). La colonne ne stockera toujours que jusqu'aux valeurs maximales de INT. La valeur et la valeur minimale. sont fixes, alors à quoi sert cette largeur d’affichage ?

Lorsque le type de champ int est défini sur
Non signé

et
Rempli de zéros (UNSIGNED ZEROFILL), lorsque le nombre de chiffres n'atteint pas la largeur d'affichage définie, des zéros seront ajoutés devant la valeur. Jusqu'à ce que la largeur d'affichage définie soit atteinte, pourquoi y a-t-il une limite non signée ? C'est parce que l'attribut ZEROFILL convertit implicitement la valeur en un type non signé, donc les valeurs négatives ne peuvent pas être stockées. Le code suivant est utilisé pour expliquer spécifiquement.

Créez d'abord un tableau :

Insérez deux éléments de données

CREATE TABLE int_demo (
    id INT(11) NOT NULL AUTO_INCREMENT,
    a INT(11) NOT NULL,
    b INT(11) UNSIGNED ZEROFILL NOT NULL,
    c INT(5) DEFAULT NULL,
    d INT(5) UNSIGNED ZEROFILL NOT NULL,
    e INT(15) DEFAULT NULL,
    PRIMARY KEY (`id`)
)

INSERT INTO int_demo (a, b, c, d, e) VALUES (1, 1, 1, 1, 1);
INSERT INTO int_demo (a, b, c, d, e) VALUES (1234567890, 1234567890, 1234567890, 1234567890, 1234567890);
Remarque : Si vous utilisez le logiciel Navicate pour interroger ça, ça ne marchera pas. Le 0 à gauche sera affiché, mais lorsque vous exportez les données, vous pouvez voir les données réelles, je suppose que le logiciel a traité le format des données ?
 select * from int_demo;
id a b c d e
1 1 00000000001 1 00001 1
2 1234567890 01234567890 1234567890 1234567890 1234567890
De l'exemple précédent, nous pouvons tirer les conclusions suivantes :

Si un champ est défini sur non signé et complété avec zéro attribut, alors quelle que soit la valeur stockée dans Dans ce champ, la longueur de la valeur sera cohérente avec la largeur d'affichage définie. Par exemple, dans le champ b de l'exemple ci-dessus, la valeur insérée 1 est affichée sous la forme 00000000001 et 10 zéros sont ajoutés à gauche jusqu'à ce que la longueur atteigne 11. digits;
  1. La définition de la largeur d'affichage d'un champ ne limite pas la plage des valeurs de stockage du champ. Par exemple, le champ d est défini sur int(5), mais sur le nombre à 10 chiffres. 1234567890 peut toujours être stocké ;
  2. Le jeu de caractères La largeur n'est valable que lorsque la longueur de la valeur ne correspond pas à la largeur. Par exemple, dans le champ d int(5), lorsque 1 est inséré, la longueur est inférieure à 5, donc 4 zéros sont ajoutés à gauche jusqu'à ce qu'elle atteigne 5 chiffres. Cependant, lorsque 1234567890 est inséré, elle dépasse 5 chiffres. À ce stade, la largeur d'affichage n'a aucun effet.
  3. Recommandations associées :


Tutoriel Comment numéroter automatiquement les résultats des données de requête dans la méthode MYSQL

Comment afficher l'emplacement de stockage des fichiers de données MySQL

Exploration des performances de pagination MySQL

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn