SQL Tipos de datos para diversas bases de datos


Tipos de datos y rangos utilizados por Microsoft Access, MySQL y SQL Server.


Tipos de datos de Microsoft Access

Tipo de datos Descripción Almacenamiento
Text Para texto o una combinación de texto y números. Hasta 255 caracteres.
Memo Memo se utiliza para mayores cantidades de texto. Almacena hasta 65,536 caracteres.Notas:No se pueden ordenar los campos memo. Sin embargo, se pueden buscar.
Byte Permite números de 0 a 255. 1 byte
Integer Permite todos los números entre -32,768 y 32,767. 2 bytes
Long Permite todos los números entre -2,147,483,648 y 2,147,483,647. 4 bytes
Single Punto flotante de precisión simple. Maneja la mayoría de los decimales. 4 bytes
Double Punto flotante de doble precisión. Maneja la mayoría de los decimales. 8 bytes
Currency Para moneda. Admite 15 dígitos para la parte entera, más 4 decimales.Consejo:Puede elegir qué moneda de qué país utilizar. 8 bytes
AutoNumber El campo AutoNumber asigna automáticamente un número a cada registro, normalmente comenzando desde 1. 4 bytes
Date/Time Para fecha y hora 8 bytes
Yes/No Campo lógico, que se puede mostrar como Yes/No, True/False o On/Off. En el código, use las constantes True y False (equivalentes a 1 y 0).Notas:No se permiten valores Null en el campo Sí/No. 1 bit
Ole Object Puede almacenar imágenes, audio, video u otros BLOBs (Binary Large OBjects). Máximo 1GB
Hyperlink Contiene enlaces a otros archivos, incluidas páginas web.
Lookup Wizard Le permite crear una lista de opciones desde la que se puede seleccionar en una lista desplegable. 4 bytes


Tipos de datos MySQL

En MySQL, hay tres tipos principales: Text (texto), Number (número) y Date/Time (fecha/hora).

Tipo Text:

Tipo de datos Descripción
CHAR(size) Almacena cadenas de longitud fija (pueden contener letras, números y caracteres especiales). La longitud de la cadena se especifica entre paréntesis. Hasta 255 caracteres.
VARCHAR(size) Almacena cadenas de longitud variable (pueden contener letras, números y caracteres especiales). La longitud máxima de la cadena se especifica entre paréntesis. Hasta 255 caracteres.Notas:Si la longitud del valor es mayor que 255, se convierte al tipo TEXT.
TINYTEXT Almacena cadenas con una longitud máxima de 255 caracteres.
TEXT Almacena cadenas con una longitud máxima de 65,535 caracteres.
BLOB Para BLOBs (Binary Large OBjects). Almacena hasta 65,535 bytes de datos.
MEDIUMTEXT Almacena cadenas con una longitud máxima de 16,777,215 caracteres.
MEDIUMBLOB Para BLOBs (Binary Large OBjects). Almacena hasta 16,777,215 bytes de datos.
LONGTEXT Almacena cadenas con una longitud máxima de 4,294,967,295 caracteres.
LONGBLOB Para BLOBs (Binary Large OBjects). Almacena hasta 4,294,967,295 bytes de datos.
ENUM(x,y,z,etc.) Le permite ingresar una lista de valores posibles. Puede enumerar hasta 65,535 valores en una lista ENUM. Si el valor insertado no existe en la lista, se inserta un valor vacío.

Notas:Estos valores se ordenan según el orden en que los ingrese.

Puede ingresar los valores posibles en este formato: ENUM('X','Y','Z')

SET Similar a ENUM, con la diferencia de que SET solo puede contener hasta 64 elementos de lista y SET puede almacenar más de una selección.

Tipo Number:

Tipo de datos Descripción
TINYINT(size) Con signo de -128 a 127, sin signo de 0 a 255.
SMALLINT(size) Rango con signo de -32768 a 32767, sin signo de 0 a 65535, tamaño predeterminado 6.
MEDIUMINT(size) Rango con signo de -8388608 a 8388607, rango sin signo de 0 a 16777215. Tamaño predeterminado 9.
INT(size) Rango con signo de -2147483648 a 2147483647, rango sin signo de 0 a 4294967295. Tamaño predeterminado 11.
BIGINT(size) El rango con signo es de -9223372036854775808 a 9223372036854775807, el rango sin signo es de 0 a 18446744073709551615. Tamaño predeterminado 20.
FLOAT(size,d) Números pequeños con punto decimal flotante. El número máximo de dígitos a mostrar se especifica en el parámetro size. El número máximo de dígitos a la derecha del punto decimal se especifica en el parámetro d.
DOUBLE(size,d) Números grandes con punto decimal flotante. El número máximo de dígitos a mostrar se especifica en el parámetro size. El número máximo de dígitos a la derecha del punto decimal se especifica en el parámetro d.
DECIMAL(size,d) Tipo DOUBLE almacenado como cadena, que permite un punto decimal fijo. El número máximo de dígitos a mostrar se especifica en el parámetro size. El número máximo de dígitos a la derecha del punto decimal se especifica en el parámetro d.

Nota:El size anterior no representa la longitud real almacenada en la base de datos; por ejemplo, int(4) no significa que solo pueda almacenar números de 4 dígitos de longitud.

En realidad, la cantidad de espacio de almacenamiento que ocupa int(size) no tiene ninguna relación. int(3), int(4) e int(8) ocupan todos 4 bytes de espacio de almacenamiento en el disco. Aparte de una ligera diferencia en la forma en que se muestran al usuario, int(M) es igual al tipo de datos int.

Por ejemplo:

1. El valor de int es 10 (con zerofill especificado).

int(9)显示结果为000000010
int(3)显示结果为010

Solo difiere en la longitud mostrada; ambos ocupan cuatro bytes de espacio.

Tipo Date:

Tipo de datos Descripción
DATE() Fecha. Formato: YYYY-MM-DD

Notas:El rango admitido es desde '1000-01-01' hasta '9999-12-31'.

DATETIME() * Combinación de fecha y hora. Formato: YYYY-MM-DD HH:MM:SS

Notas:El rango soportado es desde '1000-01-01 00:00:00' hasta '9999-12-31 23:59:59'

TIMESTAMP() * Timestamp. Los valores TIMESTAMP se almacenan usando los segundos desde la época Unix ('1970-01-01 00:00:00' UTC) hasta el presente. Formato: YYYY-MM-DD HH:MM:SS

Notas:El rango soportado es desde '1970-01-01 00:00:01' UTC hasta '2038-01-09 03:14:07' UTC

TIME() Hora. Formato: HH:MM:SS

Notas:El rango admitido es desde '-838:59:59' hasta '838:59:59'.

YEAR() Año en formato de 2 o 4 dígitos.

Notas:Valores permitidos en formato de 4 dígitos: 1901 a 2155. Valores permitidos en formato de 2 dígitos: 70 a 69, que representan de 1970 a 2069.

* Aunque DATETIME y TIMESTAMP devuelven el mismo formato, funcionan de manera muy diferente. En una consulta INSERT o UPDATE, TIMESTAMP se establece automáticamente a la fecha y hora actuales. TIMESTAMP también acepta diferentes formatos, como YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD o YYMMDD.


Tipos de datos de SQL Server

Tipo String:

Tipo de datos Descripción Almacenamiento
char(n) Cadenas de longitud fija. Hasta 8,000 caracteres. Defined width
varchar(n) Cadenas de longitud variable. Hasta 8,000 caracteres. 2 bytes + number of chars
varchar(max) Cadenas de longitud variable. Hasta 1,073,741,824 caracteres. 2 bytes + number of chars
text Cadenas de longitud variable. Hasta 2 GB de datos de texto. 4 bytes + number of chars
nchar Cadena Unicode de longitud fija. Máximo 4,000 caracteres. Defined width x 2
nvarchar Cadena Unicode de longitud variable. Máximo 4,000 caracteres.
nvarchar(max) Cadena Unicode de longitud variable. Máximo 536,870,912 caracteres.
ntext Cadena Unicode de longitud variable. Máximo 2 GB de datos de texto.
bit Permite 0, 1 o NULL.
binary(n) Cadena binaria de longitud fija. Máximo 8,000 bytes.
varbinary Cadena binaria de longitud variable. Máximo 8,000 bytes.
varbinary(max) Cadena binaria de longitud variable. Máximo 2 GB.
image Cadena binaria de longitud variable. Máximo 2 GB.

Tipos de número:

Tipo de datos Descripción Almacenamiento
tinyint Permite todos los números del 0 al 255. 1 byte
smallint Permite todos los números entre -32,768 y 32,767. 2 bytes
int Permite todos los números entre -2,147,483,648 y 2,147,483,647. 4 bytes
bigint Permite todos los números entre -9,223,372,036,854,775,808 y 9,223,372,036,854,775,807. 8 bytes
decimal(p,s) Números con precisión y escala fijas.

Permite números desde -10^38 +1 hasta 10^38 -1.

El parámetro p indica el número máximo de dígitos que se pueden almacenar (a la izquierda y a la derecha del punto decimal). p debe ser un valor entre 1 y 38. El valor predeterminado es 18.

El parámetro s indica el número máximo de dígitos almacenados a la derecha del punto decimal. s debe ser un valor entre 0 y p. El valor predeterminado es 0.

5-17 bytes
numeric(p,s) Números con precisión y escala fijas.

Permite números desde -10^38 +1 hasta 10^38 -1.

El parámetro p indica el número máximo de dígitos que se pueden almacenar (a la izquierda y a la derecha del punto decimal). p debe ser un valor entre 1 y 38. El valor predeterminado es 18.

El parámetro s indica el número máximo de dígitos almacenados a la derecha del punto decimal. s debe ser un valor entre 0 y p. El valor predeterminado es 0.

5-17 bytes
smallmoney Datos de moneda entre -214,748.3648 y 214,748.3647. 4 bytes
money Datos de moneda entre -922,337,203,685,477.5808 y 922,337,203,685,477.5807. 8 bytes
float(n) Datos numéricos de precisión flotante desde -1.79E + 308 hasta 1.79E + 308.

El parámetro n indica si el campo almacena 4 u 8 bytes. float(24) almacena 4 bytes, mientras que float(53) almacena 8 bytes. El valor predeterminado de n es 53.

4 u 8 bytes
real Datos numéricos de precisión flotante desde -3.40E + 38 hasta 3.40E + 38. 4 bytes

Tipos de fecha:

Tipo de datos Descripción Almacenamiento
datetime Desde el 1 de enero de 1753 hasta el 31 de diciembre de 9999, con precisión de 3.33 milisegundos. 8 bytes
datetime2 Desde el 1 de enero de 1753 hasta el 31 de diciembre de 9999, con precisión de 100 nanosegundos. 6-8 bytes
smalldatetime Desde el 1 de enero de 1900 hasta el 6 de junio de 2079, con precisión de 1 minuto. 4 bytes
date Almacena solo la fecha. Desde el 1 de enero de 0001 hasta el 31 de diciembre de 9999. 3 bytes
time Almacena solo la hora. Precisión de 100 nanosegundos. 3-5 bytes
datetimeoffset Igual que datetime2, más el desplazamiento de zona horaria. 8-10 bytes
timestamp Almacena un número único que se actualiza cada vez que se crea o modifica una fila. Los valores de timestamp se basan en un reloj interno y no corresponden al tiempo real. Cada tabla solo puede tener una variable timestamp.  

Otros tipos de datos:

Tipo de datos Descripción
sql_variant Almacena hasta 8,000 bytes de datos de diferentes tipos de datos, excepto text, ntext y timestamp.
uniqueidentifier Almacena un identificador único global (GUID).
xml Almacena datos con formato XML. Máximo 2 GB.
cursor Almacena una referencia a un puntero utilizado para operaciones de base de datos.
table Almacena conjuntos de resultados para su procesamiento posterior.
Otras extensiones