MariaDB - Tipos de datos
Las buenas definiciones de campo son esenciales para la optimización de su base de datos. El enfoque ideal requiere que utilice exclusivamente un campo del tipo y tamaño necesarios. Por ejemplo, si solo va a utilizar un campo de cinco caracteres de ancho, no defina un campo de 20 caracteres de ancho. Los tipos de campo (o columna) también se conocen como tipos de datos debido a los tipos de datos almacenados dentro del campo.
Los tipos de datos MariaDB se pueden categorizar como valores numéricos, de fecha y hora y de cadena.
Tipos de datos numéricos
Los tipos de datos numéricos admitidos por MariaDB son los siguientes:
TINYINT - Este tipo de datos representa pequeños enteros que se encuentran dentro del rango con signo de -128 a 127 y el rango sin signo de 0 a 255.
BOOLEAN - Este tipo de datos asocia un valor 0 con "falso" y un valor 1 con "verdadero".
SMALLINT - Este tipo de datos representa números enteros dentro del rango con signo de -32768 a 32768 y el rango sin signo de 0 a 65535.
MEDIUMINT - Este tipo de datos representa números enteros en el rango con signo de -8388608 a 8388607, y el rango sin signo de 0 a 16777215.
INT(also INTEGER)- Este tipo de datos representa un número entero de tamaño normal. Cuando se marca como sin firmar, el rango abarca de 0 a 4294967295. Cuando se firma (la configuración predeterminada), el rango abarca de -2147483648 a 2147483647. Cuando una columna se establece en ZEROFILL (un estado sin signo), todos sus valores se anteponen con ceros para colocar M dígitos en el valor INT.
BIGINT - Este tipo de datos representa números enteros dentro del rango con signo de 9223372036854775808 a 9223372036854775807, y el rango sin signo de 0 a 18446744073709551615.
DECIMAL(también DEC, NUMERIC, FIXED): este tipo de datos representa números precisos de coma fija, con M especificando sus dígitos y D especificando los dígitos después del decimal. El valor M no agrega “-” ni el punto decimal. Si D se establece en 0, no aparece ninguna parte decimal o fracción y el valor se redondeará al DECIMAL más cercano en INSERT. El máximo de dígitos permitidos es 65 y el máximo de decimales es 30. El valor predeterminado para M en caso de omisión es 10 y 0 para D en caso de omisión.
FLOAT - Este tipo de datos representa un pequeño número de punto flotante del valor 0 o un número dentro de los siguientes rangos -
-3.402823466E + 38 hasta -1.175494351E-38
1.175494351E-38 hasta 3.402823466E + 38
DOUBLE (además REAL y DOUBLE PRECISION) - Este tipo de datos representa números de punto flotante de tamaño normal del valor 0 o dentro de los siguientes rangos:
-1.7976931348623157E + 308 hasta -2.2250738585072014E-308
2.2250738585072014E-308 hasta 1.7976931348623157E + 308
BIT- Este tipo de datos representa campos de bits con M especificando el número de bits por valor. Si se omite M, el valor predeterminado es 1. Los valores de bit se pueden aplicar con “b '[valor]'” en el que el valor representa el valor de bit en 0 y 1. El relleno de ceros se produce automáticamente desde la izquierda en toda su longitud; por ejemplo, "10" se convierte en "0010".
Tipos de datos de fecha y hora
Los tipos de datos de fecha y hora admitidos por MariaDB son los siguientes:
DATE - Este tipo de datos representa un rango de fechas de "1000-01-01" a "9999-12-31" y utiliza el formato de fecha "AAAA-MM-DD".
TIME - Este tipo de datos representa un intervalo de tiempo de "-838: 59: 59.999999" a "838: 59: 59.999999".
DATETIME- Este tipo de datos representa el rango "1000-01-01 00: 00: 00.000000" a "9999-12-31 23: 59: 59.999999". Utiliza el formato “AAAA-MM-DD HH: MM: SS”.
TIMESTAMP- Este tipo de datos representa una marca de tiempo del formato “AAAA-MM-DD HH: MM: DD”. Se utiliza principalmente para detallar el tiempo de las modificaciones de la base de datos, por ejemplo, inserción o actualización.
YEAR- Este tipo de datos representa un año en formato de 4 dígitos. El formato de cuatro dígitos permite valores en el rango de 1901 a 2155 y 0000.
String DataTypes
Los valores de tipo de cadena admitidos por MariaDB son los siguientes:
String literals - Este tipo de datos representa secuencias de caracteres entre comillas.
CHAR- Este tipo de datos representa una cadena de longitud fija rellenada a la derecha que contiene espacios de longitud especificada. M representa la longitud de columna de caracteres en un rango de 0 a 255, su valor predeterminado es 1.
VARCHAR - Este tipo de datos representa una cadena de longitud variable, con un rango M (longitud máxima de columna) de 0 a 65535.
BINARY - Este tipo de datos representa cadenas de bytes binarios, con M como la longitud de la columna en bytes.
VARBINARY - Este tipo de datos representa cadenas de bytes binarios de longitud variable, con M como longitud de columna.
TINYBLOB- Este tipo de datos representa una columna de blobs con una longitud máxima de 255 (28 - 1) bytes. En el almacenamiento, cada uno usa un prefijo de longitud de un byte que indica la cantidad de bytes en el valor.
BLOB- Este tipo de datos representa una columna de blobs con una longitud máxima de 65.535 (216 - 1) bytes. En el almacenamiento, cada uno usa un prefijo de longitud de dos bytes que indica la cantidad de bytes en el valor.
MEDIUMBLOB- Este tipo de datos representa una columna de blobs con una longitud máxima de 16.777.215 (22 4 - 1) bytes. En el almacenamiento, cada uno usa un prefijo de longitud de tres bytes que indica la cantidad de bytes en el valor.
LONGBLOB- Este tipo de datos representa una columna de blobs con una longitud máxima de 4.294.967.295 (2 32 - 1) bytes. En el almacenamiento, cada uno usa un prefijo de longitud de cuatro bytes que indica la cantidad de bytes en el valor.
TINYTEXT- Este tipo de datos representa una columna de texto con una longitud máxima de 255 (2 8 - 1) caracteres. En el almacenamiento, cada uno usa un prefijo de longitud de un byte que indica la cantidad de bytes en el valor.
TEXT- Este tipo de datos representa una columna de texto con una longitud máxima de 65.535 (2 16 - 1) caracteres. En el almacenamiento, cada uno usa un prefijo de longitud de dos bytes que indica la cantidad de bytes en el valor.
MEDIUMTEXT- Este tipo de datos representa una columna de texto con una longitud máxima de 16.777.215 (2 24 - 1) caracteres. En el almacenamiento, cada uno usa un prefijo de longitud de tres bytes que indica la cantidad de bytes en el valor.
LONGTEXT- Este tipo de datos representa una columna de texto con una longitud máxima de 4,294,967,295 o 4GB (2 32 - 1) caracteres. En el almacenamiento, cada uno usa un prefijo de longitud de cuatro bytes que indica la cantidad de bytes en el valor.
ENUM - Este tipo de datos representa un objeto de cadena que tiene un solo valor de una lista.
SET- Este tipo de datos representa un objeto de cadena que tiene cero o más valores de una lista, con un máximo de 64 miembros. Los valores SET se presentan internamente como valores enteros.