Tipos de datos SQL para MySQL, SQL Server y MS Access

Tipos de datos SQL

- Tipos de datos
- Tipos de datos SQL
- Tipos de datos Estadísticos

Un tipo de datos define qué tipo de valor puede contener una columna: datos enteros, datos de caracteres, datos monetarios, datos de fecha y hora, cadenas binarias, etc.

Se requiere que cada columna en una tabla de base de datos tenga un nombre y un tipo de datos.

Un desarrollador de SQL debe decidir qué tipo de datos se almacenarán dentro de cada columna al crear una tabla. El tipo de datos es una guía para que SQL entienda qué tipo de datos se espera dentro de cada columna, y también identifica cómo SQL interactuará con los datos almacenados.

Tipos de datos para MySQL

En MySQL hay tres tipos principales de datos: texto, número y fecha.

Tipos de datos de texto

Tipo de datos Descripción
CHAR (tamaño) Tiene una cadena de longitud fija (puede contener letras, números y caracteres especiales). El tamaño fijo se especifica entre paréntesis. Puede almacenar hasta 255 caracteres
VARCHAR (tamaño) Tiene una cadena de longitud variable (puede contener letras, números y caracteres especiales). El tamaño máximo se especifica entre paréntesis. Puede almacenar hasta 255 caracteres. Nota: si agrega un valor mayor que 255, se convertirá en un tipo de texto
TINYTEXT Tiene una cadena con una longitud máxima de 255 caracteres
TEXTO Tiene una cadena con una longitud máxima de 65.535 caracteres
BLOB Para BLOB (Objetos grandes binarios). Almacena hasta 65.535 bytes de datos
MEDIUMTEXT Tiene una cadena con una longitud máxima de 16,777,215 caracteres
MEDIUMBLOB Para BLOB (Objetos grandes binarios). Tiene capacidad para 16.777.215 bytes de datos
LONGTEXT Tiene una cadena con una longitud máxima de 4.294.967.295 caracteres
LONGBLOB Para BLOB (Objetos grandes binarios). Tiene capacidad para 4.294.967.295 bytes de datos
ENUM (x, y, z, etc.) Permite ingresar una lista de valores posibles. Puede enumerar hasta 65535 valores en una lista ENUM. Si se inserta un valor que no está en la lista, se insertará un valor en blanco.

Nota: los valores se ordenan en el orden en que los ingresas.

Ingrese los valores posibles en este formato: ENUM ('X', 'Y', 'Z')
SET Similar a ENUM, excepto que SET puede contener hasta 64 elementos de lista y puede almacenar más de una opción

Tipos de datos numéricos

Tipo de datos Descripción
TINYINT (tamaño) -128 a 127 normal. 0 a 255 SIN FIRMAR *. La cantidad máxima de dígitos se puede especificar entre paréntesis
SMALLINT (tamaño) -32768 a 32767 normal. 0 a 65535 SIN FIRMAR *. La cantidad máxima de dígitos se puede especificar entre paréntesis
MEDIUMINT (tamaño) -8388608 a 8388607 normal. 0 a 16777215 SIN FIRMAR *. La cantidad máxima de dígitos se puede especificar entre paréntesis
INT (tamaño) -2147483648 a 2147483647 normal. 0 a 4294967295 SIN FIRMAR *. La cantidad máxima de dígitos se puede especificar entre paréntesis
BIGINT (tamaño) -9223372036854775808 a 9223372036854775807 normal. 0 a 18446744073709551615 SIN FIRMAR *. La cantidad máxima de dígitos se puede especificar entre paréntesis
FLOAT (tamaño, d) Un pequeño número con un punto decimal flotante. La cantidad máxima de dígitos se puede especificar en el parámetro de tamaño. El número máximo de dígitos a la derecha del punto decimal se especifica en el parámetro d
DOBLE (tamaño, d) Un número grande con un punto decimal flotante. La cantidad máxima de dígitos se puede especificar en el parámetro de tamaño. El número máximo de dígitos a la derecha del punto decimal se especifica en el parámetro d
DECIMAL (tamaño, d) Un DOBLE almacenado como una cadena, lo que permite un punto decimal fijo. La cantidad máxima de dígitos se puede especificar en el parámetro de tamaño. El número máximo de dígitos a la derecha del punto decimal se especifica en el parámetro d


Tipos de datos para Fechas

Tipo de datos Descripción
DATE () Una fecha. Formato: AAAA-MM-DD

Nota: el rango admitido es de '1000-01-01' a '9999-12-31'

DATETIME () * Una combinación de fecha y hora. Formato: AAAA-MM-DD HH: MI: SS

Nota: el rango admitido es de '1000-01-01 00:00:00' a '9999-12-31 23:59:59'

TIMESTAMP () * Una marca de tiempo. Los valores de TIMESTAMP se almacenan como el número de segundos desde la época de Unix ('1970-01-01 00:00:00' UTC). Formato: AAAA-MM-DD HH: MI: SS

Nota: el rango admitido es de '1970-01-01 00:00:01' UTC a '2038-01-09 03:14:07' UTC

TIME () Un tiempo. Formato: HH: MI: SS

Nota: el rango admitido es de '-838: 59: 59' a '838: 59: 59'

YEAR () Un año en formato de dos o cuatro dígitos.

Nota: Valores permitidos en formato de cuatro dígitos: de 1901 a 2155. Valores permitidos en formato de dos dígitos: 70 a 69, que representan los años de 1970 a 2069

Tipos de datos de SQL Server

Tipos de datos de cadena

Tipo de datos Descripción Tamaño máximo Almacenamiento
char (n) Cadena de caracteres de ancho fijo 8,000 caracteres Ancho definido
varchar (n) Cadena de caracteres de ancho variable 8,000 caracteres 2 bytes + número de caracteres
varchar (max) Cadena de caracteres de ancho variable 1,073,741,824 caracteres 2 bytes + número de caracteres
text Cadena de caracteres de ancho variable 2 GB de datos de texto 4 bytes + número de caracteres
nchar Cadena Unicode de ancho fijo 4.000 caracteres Ancho definido x 2
nvarchar Ancho de cadena Unicode 4.000 caracteres  
nvarchar (max) Ancho de cadena Unicode 536,870,912 caracteres  
ntext Ancho de cadena Unicode 2 GB de datos de texto  
binary (n) Cadena binaria de ancho fijo 8,000 bytes  
varbinary Cadena binaria de ancho variable 8,000 bytes  
varbinary (max) Cadena binaria de ancho variable 2 GB  
image Cadena binaria de ancho variable 2 GB  

Tipos de datos numéricos

Tipo de datos Descripción Almacenamiento
bit Entero que puede ser 0, 1 o NULL  
tinyint Permite números enteros de 0 a 255 1 byte
smallint Permite números enteros entre -32,768 y 32,767 2 bytes
int Permite números enteros entre -2,147,483,648 y 2,147,483,647 4 bytes
bigint Permite números enteros entre -9,223,372,036,854,775,808 y 9,223,372,036,854,775,807 8 bytes
decimal (p, s) Números de escala y precisión fijos.

Permite números de -10 ^ 38 +1 a 10 ^ 38 -1.

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

El parámetro s indica la cantidad máxima de dígitos almacenados a la derecha del punto decimal. s debe ser un valor de 0 a p. El valor predeterminado es 0

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

Permite números de -10 ^ 38 +1 a 10 ^ 38 -1.

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

El parámetro s indica la cantidad máxima de dígitos almacenados a la derecha del punto decimal. s debe ser un valor de 0 a p. El valor predeterminado es 0

5-17 bytes
smallmoney Datos monetarios de -214,748.3648 a 214,748.3647 4 bytes
money Datos monetarios de -922,337,203,685,477.5808 a 922,337,203,685,477.5807 8 bytes
float (n) Datos del número de precisión flotante desde -1.79E + 308 a 1.79E + 308.

El parámetro n indica si el campo debe contener 4 u 8 bytes. float (24) contiene un campo de 4 bytes y float (53) contiene un campo de 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 a 3.40E + 38 4 bytes

Tipos de datos de fecha

Tipo de datos Descripción Almacenamiento
datetime Del 1 de enero de 1753 al 31 de diciembre de 1999, con una precisión de 3,33 milisegundos 8 bytes
datetime2 Desde el 1 de enero de 0001 hasta el 31 de diciembre de 1999, con una precisión de 100 nanosegundos 6-8 bytes
smalldatetime Del 1 de enero de 1900 al 6 de junio de 2079 con una precisión de 1 minuto 4 bytes
date Almacenar una fecha solamente. Del 1 de enero de 0001 al 31 de diciembre de 9999 3 bytes
time Almacenar un tiempo solo con una precisión de 100 nanosegundos 3-5 bytes
datetimeoffset Lo mismo que datetime2 con la adición de un 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. El valor de la marca de tiempo se basa en un reloj interno y no corresponde a tiempo real. Cada tabla puede tener una sola variable de marca de tiempo  

Otros tipos de datos

Tipo de datos Descripción
sql_variant Almacena hasta 8,000 bytes de datos de varios tipos de datos, excepto texto, ntext e indicación de fecha y hora
uniqueidentifier Almacena un identificador único global (GUID)
xml Almacena datos formateados en XML. Máximo 2 GB
cursor Almacena una referencia a un cursor utilizado para las operaciones de la base de datos
table Almacena un conjunto de resultados para un procesamiento posterior

Tipos de datos de Microsoft Access

Tipo de datos Descripción Almacenamiento
Text Usar para texto o combinaciones de texto y números. 255 caracteres máximo  
Memo Memo se usa para grandes cantidades de texto. Almacena hasta 65,536 caracteres. Nota: no puede ordenar un campo memo. Sin embargo, se pueden buscar  
Byte Permite números enteros de 0 a 255 1 byte
Integer Permite números enteros entre -32,768 y 32,767 2 bytes
Long Permite números enteros entre -2,147,483,648 y 2,147,483,647 4 bytes
Single Punto flotante de precisión simple. Manejará la mayoría de los decimales 4 bytes
Double Punto flotante de doble precisión. Manejará la mayoría de los decimales 8 bytes
Currency Usar para moneda. Tiene hasta 15 dígitos de dólares enteros, más 4 decimales. Consejo: puede elegir la moneda de su país para usar 8 bytes
AutoNumber Los campos de Autonumérico otorgan automáticamente a cada registro su propio número, generalmente a partir de 1 4 bytes
Date/Time Usar para fechas y horas 8 bytes
Yes/No Un campo lógico se puede mostrar como Sí / No, Verdadero / Falso u On / Off. En el código, use las constantes True y False (equivalente a -1 y 0). Nota: los valores nulos no están permitidos en los campos Sí / No 1 bit
Ole Object Puede almacenar imágenes, audio, video u otros BLOB (objetos grandes binarios) hasta 1 GB
Hyperlink Contiene enlaces a otros archivos, incluidas páginas web  
Lookup Wizard Te permite escribir una lista de opciones, que luego puedes elegir de una lista desplegable