Saltar al contenido

¿Cuál es la diferencia entre tinyint, smallint, mediumint, bigint e int en MySQL?

Solución:

Ocupan diferentes cantidades de espacio y tienen diferentes rangos de valores aceptables.

Aquí están los tamaños y rangos de valores para SQL Server, otros RDBMS tienen documentación similar:

  • MySQL
  • Postgres
  • Oracle (solo tienen un NUMBER tipo de datos realmente)
  • DB2

Resulta que todos usan la misma especificación (con algunas excepciones menores que se indican a continuación) pero admiten varias combinaciones de esos tipos (Oracle no se incluye porque solo tiene un NUMBER tipo de datos, consulte el enlace anterior):

             | SQL Server    MySQL   Postgres    DB2
---------------------------------------------------
tinyint      |     X           X                
smallint     |     X           X         X        X
mediumint    |                 X
int/integer  |     X           X         X        X 
bigint       |     X           X         X        X

Y admiten los mismos rangos de valores (con una excepción a continuación) y todos tienen los mismos requisitos de almacenamiento:

            | Bytes    Range (signed)                               Range (unsigned)
--------------------------------------------------------------------------------------------
tinyint     | 1 byte   -128 to 127                                  0 to 255
smallint    | 2 bytes  -32768 to 32767                              0 to 65535
mediumint   | 3 bytes  -8388608 to 8388607                          0 to 16777215
int/integer | 4 bytes  -2147483648 to 2147483647                    0 to 4294967295
bigint      | 8 bytes  -9223372036854775808 to 9223372036854775807  0 to 18446744073709551615 

Los tipos “sin firmar” solo están disponibles en MySQL, y el resto solo usa los rangos firmados, con una excepción notable: tinyint en SQL Server no está firmado y tiene un rango de valores de 0 a 255

los tamaño de almacenamiento requerido y cuan grande los números pueden ser.

En SQL Server:

  • tinyint 1 byte, 0 a 255
  • smallint 2 bytes, -215 (-32,768) a 215-1 (32,767)
  • int 4 bytes, -231 (-2,147,483,648) a 231-1 (2,147,483,647)
  • bigint 8 bytes, -263 (-9,223,372,036,854,775,808) a 263-1 (9.223.372.036.854.775.807)

Puede almacenar el número 1 en los 4, pero un bigint utilizará 8 bytes, mientras que un tinyint utilizará 1 byte.

Esos parecen ser tipos de datos de MySQL.

Según la documentación que llevan:

  1. tinyint = 1 byte
  2. smallint = 2 bytes
  3. mediumint = 3 bytes
  4. int = 4 bytes
  5. bigint = 8 bytes

Y, naturalmente, acepte rangos de números cada vez más grandes.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *