sql >> Base de Datos >  >> RDS >> Mysql

Tipos en MySQL:BigInt(20) vs Int(20)

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

  • INT es un entero con signo de cuatro bytes.

  • BIGINT es un entero con signo de ocho bytes.

Cada uno de ellos no acepta más ni menos valores de los que se pueden almacenar en su respectivo número de bytes. Eso significa 2 valores en un INT y 2 valores en un BIGINT .

El 20 en INT(20) y BIGINT(20) significa casi nada. Es una pista para el ancho de la pantalla. No tiene nada que ver con el almacenamiento, ni con el rango de valores que aceptará esa columna.

Prácticamente, afecta solo al ZEROFILL opción:

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

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

Es una fuente común de confusión para los usuarios de MySQL ver INT(20) y supongamos que es un límite de tamaño, algo análogo a CHAR(20) . Este no es el caso.