Tipos de datos en MySQL
·
A continuación os mostramos los tipos
de datos (data types) que se pueden definir para el motor de base de
datos MySQL:
·
GrupoTipo de
datoIntervaloAlmacenamientoNuméricosTINYINT
·
De -128 a 127 (signed)
·
De 0 a 255 (unsigned)
·
1 byteSMALLINT
·
De -32768 a 32767 (signed)
·
De 0 a 65535 (unsigned)
·
2 bytesMEDIUMINT
·
De -8388608 a 8388607 (signed)
·
De 0 a 16777215 (unsigned)
·
3 bytesINT
·
INTEGER
·
De -2147483648 a 2147483647 (signed)
·
De 0 a 4294967295 (unsigned)
·
4 bytesBIGINTDe -9223372036854775808
a 9223372036854775807 (signed)
·
De 0 a 18446744073709551615 (unsigned)8
bytesBITEquivalente a TINYINT(1)1 byteBOOL
·
BOOLEANEquivalente a TINYINT(1)
·
Valor 0 = False
·
Valor 1 = True1 byteFLOAT [(M,D)]
·
De -3.402823466E+38 a
-1.175494351E-38, 0, y desde 1.175494351E-38 a 3.402823466E+38
·
M es el número total de dígitos
y D es el número de dígitos después del punto decimal. Si se
omiteM y D, los valores se almacenan en los límites permitidos por el
hardware (unas 7 posiciones decimales)
·
4 bytesFLOAT (p)
·
p representa la precisión en
bits, MySQL usa este valor sólo para determinar si se debe usar FLOAT o DOUBLE
para el tipo de datos resultante.
·
Si p está entre 0 a 24, el
tipo de datos se convierte en FLOAT (sin M ó D). Si p está entre 25 a
53, el tipo de datos se convierte a DOUBLE (sin M ó D).
·
En realidad este tipo de datos es
proporcionado por MySQL por compatibilidad con ODBC
·
4 bytes si 0 pp DOUBLE [(M,D)]
·
De -1.7976931348623157E+308 a
-2.2250738585072014E-308, 0, y desde 2.2250738585072014E-308 a
1.7976931348623157E+308
·
M es el número total de dígitos
y D es el número de dígitos después del punto decimal. Si se
omiteM y D, los valores se almacenan en los límites permitidos por el
hardware (unas 15 posiciones decimales)
·
8 bytesREAL[(M,D)]
·
DOUBLE PRECISIONEquivalente a DOUBLE,
con la excepción de que si está activado el modo REAL_AS_FLOAT, REAL es un
sinónimo de FLOAT en lugar de DOUBLE4 Bytes ó 8 bytesDECIMAL [(M[,D])]
·
DEC [(M[,D])]
·
NUMERIC [(M[,D])]
·
FIXED[(M[,D])]
·
Número en coma flotante sin
empaquetar. Se comporta como una columna CHAR. El número se almacena como una
cadena, usando un carácter para cada dígito del valor.
·
El rango máximo es el mismo que para
el tipo DOUBLE
·
M+2 bytes sí D > 0
·
M+1 bytes sí D = 0
·
D+2, si M D
·
Fecha y horaDATEFecha, con rango
desde '1000-01-01' a '9999-12-31' con formato 'YYYY-MM-DD'3 bytesDATETIMEFecha
y hora, con rango desde '1000-01-01 00:00:00' a '9999-12-31 23:59:59' con
formato 'YYYY-MM-DD HH:MM:SS'8 bytesTIMESTAMP[(M)]Fecha y hora, el rango va
desde '1970-01-01 00:00:01' UTC a '2038-01-19 03:14:07' UTC. El formato de
almacenamiento depende del tamaño del campo4 bytesTIMEHora, con rango desde '-838:59:59'
a '838:59:59', con el formato 'HH:MM:SS'3 bytesYEAR[(2|4)]Año en dos o cuatro
dígitos, para cuatro dígitos, el rango es de 1901 a 2155, para dos dígitos es
de 70 a 69 (representando desde 1070 a 2069)1 byteCadenas de caracteresCHAR
(M)Almacena una cadena de longitud fija. La cadena podrá contener desde 0 a 255
caracteresM bytes (tanto si se ocupan como si no)VARCHAR (M)Almacena una
cadena de longitud variable. La cadena podrá contener desde 0 a 255
caracteresTamaño contenido del campo más 1 byteBINARY (M)Similar a CHAR,
excepto que contiene cadenas de caracteres binarias en lugar de cadenas no
binarias. Es decir, que contienen cadenas de bytes en lugar de cadenas de
caracteres. Esto significa que no tienen conjunto de caracteres, y la comparación
y ordenación se basa en los valores numéricos de los bytes en los
valoresM bytes, 0 MVARBINARY (M)Similar a VARCHAR, excepto que contiene
cadenas de caracteres binarias en lugar de cadenas no binarias. Es decir, que
contienen cadenas de bytes en lugar de cadenas de caracteres. Esto significa
que no tienen conjunto de caracteres, y la comparación y ordenación se basa en
los valores numéricos de los bytes en los valoresTamaño contenido del campo más
1 byteTEXTTipo de datos no binario que puede contener una cantidad variable de
datos. Sirve para almacenar texto (gran cantidad). Hasta 65535
caracteresLongitud + 2 bytes, mientras LTINYTEXTipo de datos no
binario que puede contener una cantidad variable de datos. Sirve para almacenar
texto (gran cantidad). Hasta 255 caracteresLongitud + 1 bytes,
mientras LMEDIUMTEXTTipo de datos no binario que puede contener una
cantidad variable de datos. Sirve para almacenar texto (gran cantidad). Hasta
16.777.215 caracteresLongitud + 3 bytes, mientras LLONGTEXTTipo de
datos no binario que puede contener una cantidad variable de datos. Sirve para
almacenar texto (gran cantidad). Hasta 4.294.967.295 caracteresLongitud +
4 bytes, mientras LBLOBTipo de datos binario que puede contener una
cantidad variable de datos. Permite almacenar ficheros (de cualquier tipo).
Hasta 65535 bytesLongitud + 2 bytes, mientras LTINYBLOBTipo de datos
binario que puede contener una cantidad variable de datos. Permite almacenar
ficheros (de cualquier tipo). Hasta 255 bytesLongitud + 1 bytes,
mientras LMEDIUMBLOBTipo de datos binario que puede contener una cantidad
variable de datos. Permite almacenar ficheros (de cualquier tipo). Hasta
16.777.215 bytesLongitud + 3 bytes, mientras LLONGBLOB
·
Tipo de datos binario que puede
contener una cantidad variable de datos. Permite almacenar ficheros (de
cualquier tipo). Hasta 4.294.967.295 bytes
·
Longitud + 4 bytes,
mientras LENUM (valor1, valor2, ...)Es un tipo de datos de cadena con un
valor elegido de una lista de valores permitidos que se enumeran explícitamente
en la especificación de la columna al crear la tabla. Acepta hasta 65535
valores distintos1 ó 2 bytes, dependiendo del número de valores de ENUMSET
(valor1, valor2, ...)Es un tipo de datos de cadena que puede contener ninguno,
uno ó varios valores de una lista previamente establecida (al crear la tabla).
La lista puede tener un máximo de 64 valores1, 2, 3, 4, ó 8 bytes, dependiendo
del número de miembros del conjuntoTipos de datos espaciales (Open
Gis) (*)GEOMETRYGeometry es la clase base de la jerarquía para el modelo
geométrico OpenGIS. Es una clase no instanciable, pero tiene unas cuantas
propiedades que son comunes para todos los valores geométricos creados con
cualquiera de las subclases de GeometryPOINTUn POINT es una geometría que
representa una ubicación única en un espacio de coordenadas (valor de la
coordenada X, valor de la coordenada Y)LINESTRINGUn LINESTRING es una Curva con
interpolación linear entre puntos. Un LINESTRING tiene coordenadas de
segmentos, definidos por cada par consecutivo de puntosPOLYGONUn POLYGON es una
superficie planar que representa una geometría multicara. Se define por un
único límite exterior y cero o más límites interiores, donde cada límite
interior define un agujero en el polígonoMULTIPOINTUn MULTIPOINT es una
colección de geometrías compuesta de elementos Point. Los puntos no están
conectados ni ordenados de ningún modoMULTILINESTRINGUna MULTILINESTRING es una
colección de geometrías MultiCurve compuesta de elementos
LINESTRINGMULTIPOLYGONUn MULTIPOLYGON es un objeto MultiSurface compuesto de
elementos POLYGONGEOMETRYCOLLECTION
·
Una GEOMETRYCOLLECTION es una
geometría que consiste en una colección de una o más geometrías de cualquier
clase.
·
Todos los elementos en una
GEOMETRYCOLLECTION deben estar en el mismo Sistema de Referencia Espacial (es
decir, en el mismo sistema de coordenadas)
·
CURVEUna clase CURVE es una geometría
unidimensional, normalmente representada por una secuencia de puntos. Las
subclases particulares de CURVE definen el tipo de interpolación entre puntos.
CURVE es una clase no instanciableMULTICURVEUna clase MULTICURVE es una
colección de geometrías que se compone de elementos CURVE. MULTICURVE es una
clase no instanciable SURFACEUna clase SURFACE es una geometría
bidimensional. Es una clase no instanciable. Su única subclase instanciable es
POLYGON
·
(*) MySQL implementa extensiones
espaciales siguiendo la especificación del Consorcio Open GIS (OGC), un
consorcio internacional de más de 250 compañías, agencias y universidades que
participan en el desarrollo de soluciones conceptuales públicamente disponibles
y que pueden ser útiles para todo tipo de aplicaciones que manejan datos
espaciales. MySQL implementa un subconjunto del entorno SQL con Tipos
Geométricos propuesto por el OGC. Este término se refiere a un entorno SQL que
ha sido extendido con un conjunto de tipos geométricos. Una columna SQL con
valores geométricos se implementa como una columna que tiene un tipo
geométrico. Las especificaciones describen un conjunto de tipos geométricos
SQL, así como las funciones para analizar y crear valores geométricos sobre
esos tipos.