Tipos de datos SQL

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

Tipos de datos de Microsoft Access

Tipo de datos Descripción Almacenar
Texto Para texto o combinaciones de texto y números. Máximo 255 caracteres.  
Memo

Memo se utiliza para cantidades mayores de texto. Puede almacenar hasta 65,536 caracteres.

Notas: No se puede ordenar el campo memo. Sin embargo, son buscables.

 
Byte Permite números enteros entre 0 y 255. 1 byte
Integer Permite números enteros entre -32,768 y 32,767. 2 bytes
Long Permite todos los números enteros 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
Moneda

Para moneda. Soporta 15 dígitos enteros, más 4 dígitos decimales.

Consejo: Puede elegir la moneda de cualquier país.

8 bytes
AutoNumber El campo AutoNumber asigna automáticamente un número a cada registro, generalmente comenzando en 1. 4 bytes
Fecha/Hora Para fechas y horas 8 bytes
Sí/No

Campo lógico, que se puede mostrar como Yes/No, True/False o On/Off.

En el código, utiliza los constantes True y False (equivalentes a 1 y 0)

Notas: No se permiten valores nulos en los campos de Yes/No

1 bit
Objeto Ole Puede almacenar imágenes, audio, video u otros BLOBs (Objetos Binarios de Gran Tamaño) Hasta 1 GB
Hipervínculo Incluye enlaces a otros archivos, incluyendo páginas web.  
Asistente de búsqueda Permite crear una lista de opciones que se puede seleccionar de la siguiente lista. 4 bytes

Tipos de datos de MySQL

En MySQL, hay tres tipos principales: texto, números y tipos de fecha/hora.

Tipo de texto:

Tipo de datos Descripción
CHAR(DECIMAL() Almacena cadenas de longitud fija (puede contener letras, números y caracteres especiales). Especifica la longitud de la cadena en los paréntesis. Máximo 255 caracteres.
VARCHAR(DECIMAL()

Almacena cadenas de longitud variable (puede contener letras, números y caracteres especiales). Especifica la longitud máxima de la cadena en los paréntesis. Máximo 255 caracteres.

Nota: Si la longitud del valor es mayor de 255, se convierte a tipo TEXT.

TINYTEXT Almacena cadenas de caracteres de hasta 255 caracteres.
TEXT Almacena cadenas de caracteres de hasta 65,535 caracteres.
BLOB Usado para BLOBs (Objetos Binarios Grandes). Almacena hasta 65,535 bytes de datos.
MEDIUMTEXT Almacena cadenas de caracteres de hasta 16,777,215 caracteres.
MEDIUMBLOB Usado para BLOBs (Objetos Binarios Grandes). Almacena hasta 16,777,215 bytes de datos.
LONGTEXT Almacena cadenas de caracteres de hasta 4,294,967,295 caracteres.
LONGBLOB Usado para BLOBs (Objetos Binarios Grandes). Almacena hasta 4,294,967,295 bytes de datos.
ENUM(x,y,z,etc.)

Permite ingresar una lista de valores posibles. Se pueden listar hasta 65535 valores en la lista ENUM. Si el valor insertado no existe en la lista, se inserta un valor vacío.

Nota: Estos valores se almacenan en el orden en que se ingresan.

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

SET Al igual que ENUM, SET solo puede contener hasta 64 elementos de lista, pero SET puede almacenar más de un valor.

Tipo Number:

Tipo de datos Descripción
TINYINT(DECIMAL() -128 a 127 común. 0 a 255 sin signo *. La cantidad máxima de dígitos se especifica en los corchetes.
SMALLINT(DECIMAL() -32768 a 32767 común. 0 a 65535 sin signo *. La cantidad máxima de dígitos se especifica en los corchetes.
MEDIUMINT(DECIMAL() -8388608 a 8388607 común. 0 a 16777215 sin signo *. La cantidad máxima de dígitos se especifica en los corchetes.
INT(DECIMAL() -2147483648 a 2147483647 común. 0 a 4294967295 sin signo *. La cantidad máxima de dígitos se especifica en los corchetes.
BIGINT(DECIMAL() -9223372036854775808 a 9223372036854775807 común. 0 a 18446744073709551615 sin signo *. La cantidad máxima de dígitos se especifica en los corchetes.
FLOAT(DECIMAL(,tamaño) Números pequeños con punto flotante. La cantidad máxima de dígitos se especifica en los corchetes. La cantidad máxima de dígitos a la derecha del punto se especifica en el parámetro d.
DOUBLE(DECIMAL(,tamaño) DOUBLE(
Números grandes con punto flotante. En los paréntesis se especifica el número máximo de dígitos. En el parámetro d se especifica el número máximo de dígitos decimales a la derecha del punto.DECIMAL(,tamaño) d

Como tipo DOUBLE almacenado como cadena, permite un punto decimal fijo.

Tipo de fecha:

Tipo de datos Descripción
*Estos tipos de enteros tienen opciones adicionales UNSIGNED. Por lo general, los enteros pueden ser negativos o positivos. Si se agrega la propiedad UNSIGNED, el rango comenzará en 0 en lugar de algún número negativo.

DATE()

Fecha. Formato: YYYY-MM-DD

Notas: El rango de soporte 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 de soporte es desde '1000-01-01 00:00:00' hasta '9999-12-31 23:59:59'.

TIMESTAMP()

*Tiempo de marca. Los valores de TIMESTAMP almacenan una descripción del sistema de tiempo Unix ('1970-01-01 00:00:00' UTC) hasta la fecha. Formato: YYYY-MM-DD HH:MM:SS

TIME()

Tiempo. Formato: HH:MM:SS

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

YEAR()

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

Notas: Valores permitidos para el formato de 4 dígitos: 1901 a 2155. Valores permitidos para el formato de 2 dígitos: 70 a 69, lo que representa desde 1970 a 2069.

* A pesar de que DATETIME y TIMESTAMP devuelven el mismo formato, funcionan de manera muy diferente. En consultas INSERT o UPDATE, TIMESTAMP ajusta automáticamente su valor a la fecha y hora actual. TIMESTAMP también acepta diferentes formatos, como YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD o YYMMDD.

Tipo de datos de SQL Server

Cadena de caracteres: Character

Tipo de datos Descripción Almacenar
char(n) Cadena de longitud fija. Máximo 8,000 caracteres. n
varchar(n) Cadena de longitud variable. Máximo 8,000 caracteres.  
varchar(max) Cadena de longitud variable. Máximo 1,073,741,824 caracteres.  
text Cadena de longitud variable. Máximo 2GB de datos de caracteres.  

Cadena Unicode:

Tipo de datos Descripción Almacenar
nchar(n) Datos Unicode de longitud fija. Máximo 4,000 caracteres.  
nvarchar(n) Datos Unicode de longitud variable. Máximo 4,000 caracteres.  
nvarchar(max) Datos Unicode de longitud variable. Máximo 536,870,912 de caracteres.  
ntext Datos Unicode de longitud variable. Máximo 2GB de datos de caracteres.  

Tipo Binary:

Tipo de datos Descripción Almacenar
bit Permite 0, 1 o NULL  
binary(n) Datos binarios de longitud fija. Máximo 8,000 bytes.  
varbinary(n) Datos binarios de longitud variable. Máximo 8,000 bytes.  
varbinary(max) Datos binarios de longitud variable. Máximo 2GB de bytes.  
image Datos binarios de longitud variable. Máximo 2GB.  

Tipo Number:

Tipo de datos Descripción Almacenar
tinyint Permite todos los números entre 0 y 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 de precisión fija y proporción. Permite números entre -10^38 +1 y 10^38 -1.

El parámetro p indica la cantidad máxima 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 la máxima cantidad de dígitos que se almacenan 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 de precisión fija y proporción. Permite números entre -10^38 +1 y 10^38 -1.

El parámetro p indica la cantidad máxima 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 la máxima cantidad de dígitos que se almacenan 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 monetarios entre -214,748.3648 y 214,748.3647. 4 bytes
money Datos monetarios entre -922,337,203,685,477.5808 y 922,337,203,685,477.5807. 8 bytes
float(n)

Números de precisión flotante entre -1.79E + 308 y 1.79E + 308.

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

4 o 8 bytes
real Número de precisión flotante desde -3.40E + 38 hasta 3.40E + 38. 4 bytes

Tipo de fecha:

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

Otros tipos de datos:

Tipo de datos Descripción
sql_variant Almacenar datos de diferentes tipos de datos, hasta 8,000 bytes, excepto text, ntext y timestamp.
uniqueidentifier Almacenar identificadores globales únicos (GUID).
xml Almacenar datos formateados en XML. Máximo 2GB.
cursor Almacenar referencias a punteros utilizados para operaciones de base de datos.
table Almacenar el conjunto de resultados para su procesamiento posterior.