MySQL/Gestión/Tipos de datos

De Wikilibros, la colección de libros de texto de contenido libre.

En este apartado vamos a intentar repasar los diferentes tipos de datos que podemos almacenar en una base de datos MySQL. En el momento que creamos una tabla, la elección correcta de un formato de dato para cada columna de la tabla, tendrá como consecuentcia que nuestra base de datos tenga un rendimiento óptimo a largo plazo.

Teniendo en cuenta el Manual Oficial de MySQL, podemos dividir los tipos de datos en 3 grandes grupos:

  • Numéricos
  • Fecha
  • String

Tipos de datos numéricos[editar]

A continuación intentaremos realizar un listado de cada uno de los tipos de datos numéricos en MySQL, su ocupación en disco, valores y definición.

  • BIGINT: Ocupación de 8 bytes con valores entre -8388608 y 8388607 o entre 0 y 16777215.
  • INT (INTEGER): Ocupación de 4 bytes con valores entre -2147483648 y 2147483647 o entre 0 y 4294967295.
  • MEDIUMINT: Ocupación de 3 bytes con valores entre -8388608 y 8388607 o entre 0 y 16777215.
  • SMALLINT: Ocupación de 2 bytes con valores entre -32768 y 32768 o entre 0 y 65535.
  • TINYINT: Ocupación de 1 bytes con valores entre -128 y 127 o entre 0 y 255.
  • DECIMAL (NUMERIC): Almacena los números de coma flotante como cadenas o string.
  • FLOAT (m,d): Almacena números de coma flotante, donde 'm' es el número de dígitos de la parte entera y 'd' el número de decimales.
  • DOUBLE (REAL): Almacena números de coma flotante con precisión doble. Igual que FLOAT, la diferencia es el rango de valores posibles.
  • BIT (BOOL, BOOLEAN): Número entero con valor 0 o 1.

Tipos de datos con formato fecha[editar]

A continuación intentaremos realizar un listado de cada uno de los tipos de datos numéricos en MySQL, su ocupación en disco, valores y definición.

  • DATE: Válido para almacenar una fecha con año, mes y día, su rango oscila entre '1000-01-01' y '9999-12-31'.
  • DATETIME: Almacena una fecha (año-mes-día) y una hora (horas-minutos-segundos), su rango oscila entre '1000-01-01 00:00:00' y '9999-12-31 23:59:59'.
  • TIME: Válido para almacenar una hora (horas-minutos-segundos). Su rango de horas oscila entre -838-59-59 y 838-59-59. El formato almacenado es 'HH:MM:SS'.
  • TIMESTAMP: Almacena una fecha y hora UTC. El rango de valores oscila entre '1970-01-01 00:00:01' y '2038-01-19 03:14:07'.
  • YEAR: Almacena un año dado con 2 o 4 dígitos de longitud, por defecto son 4. El rango de valores oscila entre 1901 y 2155 con 4 dígitos. Mientras que con 2 dígitos el rango es desde 1970 a 2069 (70-69).