1. Acerca de este artgculo
Este documento corresponde a la traducción del tema 6.2 (Column Types) del manual de MySQL en Inglés, y ha sido puesto a disposición de MySQL Hispano por Mario Alberich Piqué.
2. Introducción
MySQL soporta varios tipos de datos, que pueden ser agrupados en tres categorías: numéricos, fecha y hora, y cadenas (caracteres). En este artículo se presenta un breve resumen de estos tipos, se mencionan sus requerimientos de almacenamiento, y se hace una descripción más detallada de las propiedades de cada uno de ellos. Los tipos de datos soportados por MySQL son listados a continuación.
Las siguientes convenciones son usadas en las descripciones:
M - Indica el tamaño máximo que se puede desplegar (mostrar). El mayor valor legal es de 255.
D - Aplica a los datos de punto flotante e indica el número de digitos que siguen al punto decimal. El valor máximo posible es de 30, pero no debe ser mayor de M-2.
Los paréntesis cuadrados indican que un elemento es opcional.
Se debe notar que cuando se especifica ZEROFILL para una columna, MySQL agregará autómaticamente el atributo UNSIGNED.
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
Un entero muy pequeño. Su rango es de -128 a 127. Para enteros sin signo el rango es de 0 a 255.
BIT y BOOL
Es un sinónimo para TINYINT(1).
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
Un entero pequeño. Su rango es de -32768 a 32767. Para enteros sin signo el rango es de 0 a 65535.
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
Un entero de tamaño medio. Su rango es de -8388608 a 8388607. Para enteros sin signo el rango es de 0 a 16777215.
INT[(M)] [UNSIGNED] [ZEROFILL]
Un entero normal. Su rango es de -2147483648 a 2147483647. Para enteros sin signo el rango es de 0 a 4294967295.
INTEGER[(M)] [UNSIGNED] [ZEROFILL]
Es un sinónimo para INT.
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
Es un entero grande. Su rango es de -9223372036854775808 a 9223372036854775807. Para enteros sin signo el rango es de 0 a 18446744073709551615.
FLOAT(precisión) [UNSIGNED] [ZEROFILL]
Un número de punto flotante. La precisión puede ser <=24 para un número de precisión sencilla y entre 25 y 53 para un número de doble precisión. Este tipo es como el FLOAT y DOUBLE que se describen a continuación. Un FLOAT(X) tiene el mismo rango que los correspondientes tipos FLOAT y DOUBLE, pero el tamaño de despliegue y el número de decimales no están definidos.
FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
Un número pequeño de punto flotante (o bien, de precisión sencilla). El rango de valores permitidos es de -3.402823466E+38 a -1.175494351E-38, 0, y de 1.175494351E-38 a 3.402823466E+38. Si se usa el modificador UNSIGNED, los valores negativos son deshabilitados. M es el tamaño de despliegue y D el número de decimales. FLOAT sin argumentos o FLOAT(X) donde X<=24 se entiende como un número de punto flotante de precisión sencilla.
DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]
Un número normal de punto flotante ( o bien, de precisión doble ). El rango de valores permitidos es de -1.7976931348623157E+308 a -2.2250738585072014E-308, 0, y de 2.2250738585072014E-308 a 1.7976931348623157E+308. Si el modificador UNSIGNED es especificado, los valores negativos son deshabilitados. M es el tamaño de despliegue y D el número de decimales. DOUBLE sin argumentos o FLOAT(X) donde 25 <= X <= 53 se entiende por un número de punto flotante de doble precisión.
DOUBLE PRECISION[(M,D)] [UNSIGNED] [ZEROFILL]
REAL[(M,D)] [UNSIGNED] [ZEROFILL]
Son sinónimos para DOUBLE.
DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]
Un número de punto flotante sin empaquetar. Como en las columnas CHAR, "sin empaquetar" significa que el número es almacenado como una cadena con un caracter para cada digito del valor. El punto decimal, y para números negativos el signo - no son contados en M (sin embargo se les reserva espacio). Si D vale 0, los valores no tendrán punto decimal. El máximo rango de valores es el mismo que para DOUBLE, pero el rango para una columna DECIMAL puede ser restringido con la elección de valores en M y D. Si el atributo UNSIGNED es usado, los valores negativos son deshabilitados. Si D es omitido, el valor por default es 0. Si M es omitido el valor por default es 10.
DEC[(M[,D])] [UNSIGNED] [ZEROFILL]
NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL]
Son sinónimos para DECIMAL.
|