Mysql
 sql >> Base de données >  >> RDS >> Mysql

Types dans MySQL :BigInt(20) contre Int(20)

Voir http://dev.mysql.com/doc/ refman/8.0/en/numeric-types.html

  • INT est un entier signé de quatre octets.

  • BIGINT est un entier signé de huit octets.

Ils n'acceptent ni plus ni moins de valeurs que ce qui peut être stocké dans leur nombre respectif d'octets. Cela signifie 2 valeurs dans un INT et 2 valeurs dans un BIGINT .

Le 20 dans INT(20) et BIGINT(20) signifie presque rien. C'est un indice pour la largeur d'affichage. Cela n'a rien à voir avec le stockage, ni la plage de valeurs que la colonne acceptera.

Pratiquement, cela n'affecte que le ZEROFILL choix :

CREATE TABLE foo ( bar INT(20) ZEROFILL );
INSERT INTO foo (bar) VALUES (1234);
SELECT bar from foo;

+----------------------+
| bar                  |
+----------------------+
| 00000000000000001234 |
+----------------------+

C'est une source courante de confusion pour les utilisateurs de MySQL de voir INT(20) et supposons qu'il s'agit d'une limite de taille, quelque chose d'analogue à CHAR(20) . Ce n'est pas le cas.