MySQL - Tipos de datos
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 denominan tipos de datos, después de latype of data almacenará en esos campos.
MySQL utiliza muchos tipos de datos diferentes divididos en tres categorías:
- Numeric
- Fecha y hora
- Tipos de cadenas.
Analicemos ahora en detalle.
Tipos de datos numéricos
MySQL utiliza todos los tipos de datos numéricos ANSI SQL estándar, por lo que si llega 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 número entero de tamaño normal que puede estar con o sin signo. 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 puede estar firmado o no firmado. 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 pequeño entero que puede estar firmado o no firmado. 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 no firmado. 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 estar firmado o no firmado. 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.
FLOAT(M,D)- Un número de punto flotante que no se puede anular. Puede definir la longitud de la pantalla (M) y el número de decimales (D). Esto no es obligatorio y estará predeterminado en 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 llegar a 24 lugares para un FLOAT.
DOUBLE(M,D)- Un número de punto flotante de doble precisión que no puede estar sin signo. Puede definir la longitud de la pantalla (M) y el número de decimales (D). Esto no es obligatorio y el valor predeterminado será 16,4, donde 4 es el número de decimales. La precisión decimal puede llegar a 53 lugares para un DOBLE. REAL es sinónimo de DOBLE.
DECIMAL(M,D)- Un número de punto flotante descomprimido que no se puede anular. En los decimales descomprimidos, cada decimal corresponde a un byte. Es necesario definir la longitud de la pantalla (M) y el número de decimales (D). NUMERIC es sinónimo de DECIMAL.
Tipos de fecha y hora
Los tipos de datos de fecha y hora de MySQL son los siguientes:
DATE- Una fecha en formato AAAA-MM-DD, entre 1000-01-01 y 9999-12-31. Por ejemplo 30 de diciembre º , 1973 se almacena como 30/12/1973.
DATETIME- Una combinación de fecha y hora en formato AAAA-MM-DD HH: MM: SS, entre 1000-01-01 00:00:00 y 9999-12-31 23:59:59. Por ejemplo, las 3:30 de la tarde de diciembre 30 de XX de 1973 se almacenaría como 30/12/1973 15:30:00.
TIMESTAMP- Una marca de tiempo entre la medianoche 1 DE ENERO st , 1970 y en algún momento de 2037. Esto parece el formato DATETIME anterior, sólo que sin los guiones entre los números; 3:30 de la tarde de diciembre 30 de XX de 1973 se almacenaría como 19731230153000 (AAAAMMDDHHMMSS).
TIME - Almacena la hora en formato HH: MM: SS.
YEAR(M)- Almacena un año en 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, entonces YEAR puede ser de 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 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)), rellenada a la derecha con espacios hasta 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 or TEXT- Un campo con una longitud máxima de 65535 caracteres. Los BLOB son "objetos grandes binarios" y se utilizan para almacenar grandes cantidades de datos binarios, como imágenes u otros tipos de archivos. Los campos definidos como TEXTO también contienen grandes cantidades de datos. La diferencia entre los dos es que los ordenamientos y comparaciones de los datos almacenados soncase sensitive en BLOB y son not case sensitiveen los campos de TEXTO. No especifica una longitud con BLOB o TEXT.
TINYBLOB or TINYTEXT- Una columna BLOB o TEXTO con una longitud máxima de 255 caracteres. No especifica una longitud con TINYBLOB o TINYTEXT.
MEDIUMBLOB or MEDIUMTEXT- Una columna BLOB o TEXT con una longitud máxima de 16777215 caracteres. No especifica una longitud con MEDIUMBLOB o MEDIUMTEXT.
LONGBLOB or LONGTEXT- Una columna BLOB o TEXT con una longitud máxima de 4294967295 caracteres. No especificas 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 de los que se debe seleccionar el valor (o puede ser NULL). Por ejemplo, si desea que su campo contenga "A" o "B" o "C", debería definir su ENUM como ENUM ('A', 'B', 'C') y solo esos valores (o NULL) podría poblar ese campo.
En el próximo capítulo, discutiremos cómo crear tablas en MySQL.