Os mostramos los tipos de datos del motor de base de datos SGBD Microsoft SQL Server y MSDE: bigint, int, smallint, tinyint, bit, decimal, money, smallmoney, float, real, datetime, smalldatetime, char, varchar, varbinary, etc. Explicamos cuando utilizarlos y el tamaño que ocupan. En el artículo se incluyen los tipos de datos disponibles hasta la versión 2005.
Definición de Microsoft SQL Server
Microsoft SQL Server es un sistema de gestión de bases de datos relacionales (SGBD) basado en el lenguaje Transact-SQL, y específicamente en Sybase IQ. Este motor de base de datos admite multitud de usuarios conectados a la base de datos de forma simultánea y concurrente.
Algunas de las características de Microsoft SQL Server:
- Soporte de transacciones.
- Escalabilidad, estabilidad y seguridad.
- Soporta procedimientos almacenados.
- Incluye también un potente entorno gráfico de administración, que permite el uso de comandos DDL y DML gráficamente.
- Permite trabajar en modo cliente-servidor, donde la información y datos se alojan en el servidor y las terminales o clientes de la red sólo acceden a la información.
- Permite administrar información de otros servidores de datos.
Este sistema de gestión de bases incluye una versión reducida, llamada MSDE con el mismo motor de base de datos pero orientado a proyectos más pequeños, que en su versión 2005 pasa a ser el SQL Express Edition, que se distribuye en forma gratuita.
Tipos de datos de Microsoft SQL Server
A continuación os mostramos los tipos de datos que se pueden definir para este motor de base de datos (tanto para Microsoft SQL Server como para MSDE).
Números exactos
Tipo de dato | Intervalo | Almacenamiento |
---|---|---|
bigint | De -263 (-9.223.372.036.854.775.808) a 263 – 1 (9.223.372.036.854.775.807) | 8 bytes |
int | De -231 (-2.147.483.648) a 231 – 1 (2.147.483.647) | 4 bytes |
smallint | De -215 (-32.768) a 215 – 1 (32.767) | 2 bytes |
tinyint | Tipo de datos entero que puede aceptar los valores 1, 0 ó NULL | 2 bytes |
decimal, numeric, decimal (p, s) | p (precisión): el número total máximo de dígitos decimales que se puede almacenar, tanto a la izquierda como a la derecha del separador decimal. La precisión debe ser un valor comprendido entre 1 y la precisión máxima de 38. La precisión predeterminada es 18. s (escala): el número máximo de dígitos decimales que se puede almacenar a la derecha del separador decimal. La escala debe ser un valor comprendido entre 0 y p. Sólo es posible especificar la escala si se ha especificado la precisión. La escala predeterminada es 0. Con precisión máxima 1038 +1 y 1038 – 1 | Precisión 1 – 9: 5 bytes |
money | Tipos de datos que representan valores monetarios o de moneda: de -922.337.203.685,4775808 a 922.337.203.685,4775807 | 8 bytes |
smallmoney | De – 214,7483648 a 214,7483647 | 8 bytes |
Numéricos aproximados
Tipo de dato | Intervalo | Almacenamiento |
---|---|---|
float | De – 1,79E+308 a -2,23E-308, 0 y de 2,23E-308 a 1,79E+308 | Depende del valor de n |
real | De – 3,40E + 38 a -1,18E – 38, 0 y de 1,18E – 38 a 3,40E + 38 | 4 Bytes |
Fecha y hora
Tipo de dato | Intervalo | Almacenamiento |
---|---|---|
datetime | Del 1 de enero de 1753 hasta el 31 de diciembre de 9999 | |
smalldatetime | Del 1 de enero de 1900 hasta el 6 de junio de 2079 |
Cadenas de caracteres
Tipo de dato | Intervalo | Almacenamiento |
---|---|---|
char (n) | Caracteres no Unicode de longitud fija, con una longitud de n bytes. n debe ser un valor entre 1 y 8.000 | n bytes |
varchar (n) | Caracteres no Unicode de longitud variable. n indica que el tamaño de almacenamiento máximo es de 231 – 1 bytes | n bytes (aprox.) |
text | En desuso, sustituido por varchar. Datos no Unicode de longitud variable con una longitud máxima de 231 – 1 (2.147.483.647) caracteres | max bytes (aprox.) |
Cadenas de caracteres unicode
Tipo de dato | Intervalo | Almacenamiento |
---|---|---|
nchar (n) | Datos de carácter Unicode de longitud fija, con n caracteres. n debe estar comprendido entre 1 y 4.000 | 2 * n bytes |
nvarchar (n) | Datos de carácter Unicode de longitud variable. n indica que el tamaño máximo de almacenamiento es 231 – 1 bytes | 2 * n bytes + 2 bytes |
ntext (n) | En desuso, sustituido por nvarchar. Datos Unicode de longitud variable con una longitud máxima de 230 – 1 (1.073.741.823) caracteres | 2 * n bytes |
Cadenas binarias
Tipo de dato | Intervalo | Almacenamiento |
---|---|---|
binary (n) | Datos binarios de longitud fija con una longitud de n bytes, donde n es un valor que oscila entre 1 y 8.000 | v |
varbinary (n) | Datos binarios de longitud variable. n indica que el tamaño de almacenamiento máximo es de 231 – 1 bytes | n bytes |
image | En desuso, sustituido por varbinary. Datos binarios de longitud variable desde 0 hasta 231 – 1 (2.147.483.647) bytes |
Otros tipos de datos
Tipo de dato | Intervalo | Almacenamiento |
---|---|---|
cursor | Tipo de datos para las variables o para los parámetros de resultado de los procedimientos almacenados que contiene una referencia a un cursor. Las variables creadas con el tipo de datos cursor aceptan NULL | |
timestamp | Tipo de datos que expone números binarios únicos generados automáticamente en una base de datos. El tipo de datos timestamp es simplemente un número que se incrementa y no conserva una fecha o una hora | 8 bytes |
sql_variant | Tipo de datos que almacena valores de varios tipos de datos aceptados en SQL Server, excepto text, ntext, image, timestamp y sql_variant | |
uniqueidentifier | Es un GUID (Globally Unique Identifier, Identificador Único Global) | 16 bytes |
table | Es un tipo de datos especial que se puede utilizar para almacenar un conjunto de resultados para su procesamiento posterior. table se utiliza principalmente para el almacenamiento temporal de un conjunto de filas devuelto como el conjunto de resultados de una función con valores de tabla | |
xml | Almacena datos de XML. Puede almacenar instancias de xml en una columna o una variable de tipo xml |