Maison  >  Article  >  base de données  >  Quel est le type entier long de MySQL ?

Quel est le type entier long de MySQL ?

青灯夜游
青灯夜游original
2022-06-14 16:40:295100parcourir

Le type entier long de MySQL est "BIGINT". BIGINT est un octet ab ou une valeur entière de 64 bits, très utile lors du stockage de valeurs entières extrêmement grandes. BIGINT, comme les autres types de données entiers, peut être signé ou non ; le type de données signé signifie que la colonne peut stocker des valeurs entières positives et négatives, tandis que le type de données non signé signifie que la colonne ne peut stocker que des valeurs entières positives. La plage des types BIGINT signés est comprise entre "-9223372036854775808" et "9223372036854775807".

Quel est le type entier long de MySQL ?

L'environnement d'exploitation de ce tutoriel : système windows7, version mysql8, ordinateur Dell G3.

Le type entier est également appelé données numériques. Le type de données numériques est principalement utilisé pour stocker des nombres.

MySQL fournit une variété de types de données numériques. Différents types de données fournissent différentes plages de valeurs. Plus la plage de valeurs pouvant être stockée est grande, plus l'espace de stockage requis est grand.

Les principaux types d'entiers fournis par MySQL sont TINYINT, SMALLINT, MEDIUMINT, INT et BIGINT, et des contraintes d'incrémentation automatique AUTO_INCREMENT peuvent être ajoutées à leurs champs d'attributs. Le tableau suivant répertorie les types numériques dans MySQL.

Type Taille Plage (signé) Plage (non signé) Utilisation
TINYINT 1 octet (-128, 127) (0, 255) Petite valeur entière
SMALLINT 2 octets (-32 768, 32 767) (0, 65 535) Grande valeur entière
MEDIUMINT 3 pièces Octets (-8 388 608, 8 388 607) (0, 16 777 215) GRANDE VALEUR ENTIÈRE
INT ou INTEGER 4 octets (-2 147 483, 2 147 483 647) (0 , 4 294 967 295) Grande valeur entière
BIGINT 8 octets (-9 223 372 036 854 775 808,9 223 372 036 854 775 807) (0, 18 446 744 073 709 551 615) Maximum valeur entière

Comme vous pouvez le voir dans le tableau ci-dessus, le nombre d'octets requis pour les différents types de stockage d'entiers est différent. Le type TINYINT occupe le plus petit nombre d'octets et le type BIGINT occupe le plus grand nombre d'octets. occupe plus d'octets Plus la plage de valeurs pouvant être représentées est grande. Par conséquent, le type entier long de MySQL est "BIGINT".

MySQL BIGINT

BIGINT est un octet ab ou une valeur entière de 64 bits, très utile lors du stockage de grandes valeurs entières.

MySQL BIGINT, comme tout autre type de données entières MySQL, peut être signé ou non signé. Un type de données signé signifie que la colonne peut stocker des valeurs entières positives et négatives. Il s'agit du type par défaut pour la plupart des types entiers dans MySQL. Par conséquent, toute colonne de type entier peut stocker des entiers positifs et négatifs, sauf indication contraire explicite.

D'un autre côté, le type de données non signé signifie que la colonne ne peut stocker que des valeurs entières positives.

Le type MySQL BIGINT signé est compris entre -9223372036854775808 et 9223372036854775807

Pour le type BIGINT non signé, la plage de valeurs est comprise entre 0 et 18446744073709551615.

Une autre propriété du type BIGINT est ZEROFILL. Lorsque cette propriété est spécifiée sur une colonne, la colonne est automatiquement définie sur UNSIGNED. L'attribut

zerofill remplit également les espaces avec des zéros.

Exemples BIGINT :

Regardons quelques exemples pour illustrer comment utiliser le type BIGINT.

CREATE DATABASE IF NOT EXISTS integers;
USE integers;

Ensuite, créons un tableau et remplissons-le avec diverses colonnes BIGINT comme indiqué dans la requête ci-dessous :

CREATE TABLE examples(x BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, y BIGINT UNSIGNED, z BIGINT ZEROFILL );

Exemple 1

Essayons d'abord d'ajouter tous les points positifs valeurs à la table :

INSERT INTO examples(x,y,z) VALUES (1,2,3);

Dans l'exemple de requête ci-dessus, ces valeurs sont acceptables car elles se situent dans la plage des types BIGINT signés, non signés et à remplissage nul.

SELECT * FROM examples;

Quel est le type entier long de MySQL ?

Exemple 2

Dans le cas suivant, essayons d'ajouter toutes les valeurs négatives. Un exemple de requête est le suivant :

INSERT INTO examples(x,y,z) VALUES (-1,-2,-3);
ERROR 1264 (22003): Out of range value for column 'y' at row 1

Dans ce cas, la requête échoue car la colonne y n'est pas signée. Par conséquent, l’attribution d’une valeur négative à une colonne se situe en dehors de la plage de colonnes.

Exemple 3

Nous pouvons observer une situation similaire à la troisième colonne ci-dessus. L'attribut zerofill rend automatiquement la colonne non signée, ce qui rend l'ajout de valeurs négatives hors de portée. Un exemple est :

INSERT INTO examples(x,y,z) VALUES (-1,2,-3);
ERROR 1264 (22003): Out of range value for column 'z' at row 1

Exemple 4

Essayons maintenant d'ajouter la valeur maximale de chaque type. Un exemple de requête est :

INSERT INTO examples(x,y,z) VALUES (-9223372036854775808, 9223372036854775808, 9223372036854775808);

Dans l'exemple ci-dessus, la requête s'exécute avec succès puisque toutes les valeurs sont dans la plage.

Considérez la requête suivante :

INSERT INTO examples(x,y,z) VALUES (9223372036854775807, 9223372036854775808, 9223372036854775808);

Vous remarquerez que toutes les valeurs sont au maximum. Puisque la colonne x est définie sur AUTO_INCREMENT, l’ajout d’une valeur échouera.

INSERT INTO examples(y,z) VALUES (9223372036854775808, 9223372036854775808);
ERROR 1062 (23000): Duplicate entry '9223372036854775807' for key 'examples.PRIMARY'

Cependant, si le mode strict est désactivé dans MySQL, vous pouvez insérer des valeurs hors plage.

SELECT * FROM examples;

Quel est le type entier long de MySQL ?[Recommandations associées :

tutoriel vidéo 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