Tipos de Datos en Mysql y Maria DB

Para la definición de tipos de datos en MySQL necesitamos la definición de crear un query en la tabla que necesitamos y suplir no solo el nombre del campo o la columna sino tambien su tipo, y tenemos varias posibilidades aquí  en mysql. Primero hablemos de los tipos numericos.

Tenemos varios tipos de datos numericos en los que se encuentrar TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT.

Definir correctamente los campos en una tabla es importante para la optimización general de su base de datos. Debe usar solo el tipo y tamaño de campo que realmente necesita usar. Por ejemplo, no defina un campo de 10 caracteres de ancho, si sabe que solo va a utilizar 2 caracteres. Este tipo de campos (o columnas) también se conocen como tipos de datos, después del tipo de datos que almacenará en esos campos.


MySQL usa muchos tipos de datos diferentes divididos en tres categorías:


Vamos ahora a discutirlos en detalle.

Tipos de datos numéricos

MySQL usa todos los tipos de datos numéricos ANSI SQL estándar, por lo que si viene a MySQL desde un sistema de base de datos diferente, estas definiciones le resultarán familiares.

La siguiente lista muestra los tipos de datos numéricos comunes y sus descripciones:

    INT: un entero de tamaño normal que se puede firmar o anular. Si está firmado, el rango permitido es de -2147483648 a 2147483647. Si no está firmado, el rango permitido es de 0 a 4294967295. Puede especificar un ancho de hasta 11 dígitos.


    TINYINT: un entero muy pequeño que se puede firmar o anular. Si está firmado, el rango permitido es de -128 a 127. Si no está firmado, el rango permitido es de 0 a 255. Puede especificar un ancho de hasta 4 dígitos.

    SMALLINT: un entero pequeño que se puede firmar o anular. Si está firmado, el rango permitido es de -32768 a 32767. Si no está firmado, el rango permitido es de 0 a 65535. Puede especificar un ancho de hasta 5 dígitos.

    MEDIUMINT - Un entero de tamaño mediano que puede estar firmado o sin firmar. Si está firmado, el rango permitido es de -8388608 a 8388607. Si no está firmado, el rango permitido es de 0 a 16777215. Puede especificar un ancho de hasta 9 dígitos.


    BIGINT - Un entero grande que puede ser firmado o sin firmar. Si está firmado, el rango permitido es de -9223372036854775808 a 9223372036854775807. Si no está firmado, el rango permitido es de 0 a 18446744073709551615. Puede especificar un ancho de hasta 20 dígitos.


    FLOTADOR (M, D): un número de punto flotante que no se puede anular. Puede definir la longitud de visualización (M) y el número de decimales (D). Esto no es obligatorio y por defecto será de 10,2, donde 2 es el número de decimales y 10 es el número total de dígitos (incluidos los decimales). La precisión decimal puede ir a 24 lugares para un FLOTADOR.


    DOBLE (M, D): un número de coma flotante de precisión doble que no se puede anular. Puede definir la longitud de visualización (M) y el número de decimales (D). Esto no es obligatorio y por defecto será 16,4, donde 4 es el número de decimales. La precisión decimal puede ir a 53 lugares para un DOBLE. REAL es un sinónimo de DOBLE.


    DECIMAL (M, D): un número de punto flotante desempaquetado que no se puede anular. En los decimales sin empaquetar, cada decimal corresponde a un byte. Se requiere definir la longitud de visualización (M) y el número de decimales (D). NUMERIC es un sinónimo de DECIMAL.


Tipos de fecha y hora

Los tipos de datos de fecha y hora de MySQL son los siguientes:

    FECHA: una fecha en formato AAAA-MM-DD, entre el 1000-01-01 y el 9999-12-31. Por ejemplo, el 30 de diciembre de 1973 se almacenaría como 1973-12-30.

    DATETIME - Una combinación de fecha y hora en el formato YYYY-MM-DD HH: MM: SS, entre el 1000-01-01 00:00:00 y el 9999-12-31 23:59:59. Por ejemplo, las 3:30 de la tarde del 30 de diciembre de 1973 se almacenarán como 1973-12-30 15:30:00.

    TIMESTAMP: una marca de tiempo entre la medianoche del 1 de enero de 1970 y en algún momento de 2037. Se parece al formato DATETIME anterior, pero sin los guiones entre los números; Las 3:30 de la tarde del 30 de diciembre de 1973 se almacenarán como 19731230153000 (YYYYMMDDHHMMSS).

    HORA: almacena la hora en un formato HH: MM: SS.

    AÑO (M): almacena un año en un formato de 2 o 4 dígitos. Si la longitud se especifica como 2 (por ejemplo, YEAR (2)), YEAR puede estar entre 1970 y 2069 (70 a 69). Si la longitud se especifica como 4, YEAR puede ser 1901 a 2155. La longitud predeterminada es 4.


Tipos de cadenas

Aunque los tipos numéricos y de fecha son divertidos, la mayoría de los datos que almacenará estarán en un formato de cadena. Esta lista describe los tipos de datos de cadenas comunes en MySQL.

CHAR (M): una cadena de longitud fija entre 1 y 255 caracteres de longitud (por ejemplo, CHAR (5)), rellena a la derecha con espacios en la longitud especificada cuando se almacena. No es necesario definir una longitud, pero el valor predeterminado es 1.

    VARCHAR (M): una cadena de longitud variable entre 1 y 255 caracteres de longitud. Por ejemplo, VARCHAR (25). Debe definir una longitud al crear un campo VARCHAR.

    BLOB o TEXTO: un campo con una longitud máxima de 65535 caracteres. Los BLOB son "objetos binarios grandes" y se utilizan para almacenar grandes cantidades de datos binarios, como imágenes u otros tipos de archivos. Los campos definidos como TEXT también contienen grandes cantidades de datos. La diferencia entre los dos es que las clasificaciones y comparaciones en los datos almacenados son sensibles a las mayúsculas y minúsculas en los BLOB y no son sensibles a las mayúsculas y minúsculas en los campos de texto. No se especifica una longitud con BLOB o TEXTO.

    TINYBLOB o TINYTEXT: una columna BLOB o TEXT con una longitud máxima de 255 caracteres. Haces no especifique una longitud con TINYBLOB o TINYTEXT.

    MEDIUMBLOB o MEDIUMTEXT: una columna BLOB o TEXTO con una longitud máxima de 16777215 caracteres. No especifica una longitud con MEDIUMBLOB o MEDIUMTEXT.

     LONGBLOB o LONGTEXT: una columna BLOB o TEXT con una longitud máxima de 4294967295 caracteres. No especifica una longitud con LONGBLOB o LONGTEXT.

    ENUM - Una enumeración, que es un término elegante para la lista. Al definir un ENUM, está creando una lista de elementos entre los que se debe seleccionar el valor (o puede ser NULL). Por ejemplo, si desea que su campo contenga "A" o "B" o "C", definiría su ENUM como ENUM ('A', 'B', 'C') y solo esos valores (o NULL) Alguna vez podría poblar ese campo.