Lo básico sobre distintos tipos de datos
Tipo de dato | Descripción | Tamaño máximo | Almacenamiento |
---|---|---|---|
Texto | |||
char(n) | Cadena de caracteres de ancho fijo | 8000 caracteres | Ancho definido |
varchar(n) | Cadena de caracteres de ancho variable | 8000 caracteres | 2 bytes + cantidad de caracteres |
varchar(max) | Cadena de caracteres de ancho variable | 1.073.741.824 caracteres | 2 bytes + cantidad de caracteres |
text | Cadena de caracteres de ancho variable | 2 GB de datos de texto | 4 bytes + cantidad de caracteres |
nchar | Cadena Unicode de ancho fijo | 4000 caracteres | Ancho definido x2 |
nvarchar | Cadena Unicode de ancho variable | 4000 caracteres | |
nvarchar(max) | Cadena Unicode de ancho variable | 536.870.912 caracteres | |
ntext | Cadena Unicode de ancho variable | 2 GB de datos de texto | |
binary(n) | Cadena binaria de ancho fijo | 8000 bytes | |
varbinary | Cadena binaria de ancho variable | 8000 bytes | |
varbinary(max) | Cadena binaria de ancho variable | 2 GB | |
image | Cadena binaria de ancho variable | 2 GB | |
Números | |||
bit | Número entero que puede ser 0, 1 o NULL | ||
tinyint | Permite números enteros entre 0 y 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 precisión fija y de escala. Permite números de 10^38 +1 a 10^38 -1. El parámetro p indica la cantidad total máxima de dígitos que se pueden almacenar (tanto a la izquierda como a la derecha del punto decimal). p debe ser un valor entre 1 y 38. Por defecto 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 entre 0 y p. El valor por defecto es 0. | 5-17 bytes | |
numeric(p,s) | Números de precisión fija y de escala. Permite números de 10^38 +1 a 10^38 -1. El parámetro p indica la cantidad total máxima de dígitos que se pueden almacenar (tanto a la izquierda como a la derecha del punto decimal). p debe ser un valor entre 1 y 38. Por defecto 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 entre 0 y p. El valor por defecto 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 numéricos de precisión flotante de -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 por defecto de n es 53. | 4 u 8 bytes | |
real | Datos numéricos de precisión flotante de -3.40E + 38 a 3.40E + 38 | 4 bytes | |
Fecha y hora | |||
datetime | Del 1 de enero de 1753 al 31 de diciembre de 9999 con una precisión de 3,33 milisegundos | 8 bytes | |
datetime2 | Del 1 de enero de 0001 al 31 de diciembre de 9999 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 | Almacena sólo una fecha. Del 1 de enero de 0001 al 31 de diciembre de 9999 | 3 bytes | |
time | Almacena sólo una hora con una precisión de 100 nanosegundos | 3-5 bytes | |
datetimeoffset | Lo mismo que datetime2 con un desfase de zona horaria adicional | 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 al tiempo real. Cada tabla sólo puede tener una variable de fecha y hora | ||
Otros | |||
sql_variant | Almacena hasta 8.000 bytes de datos de varios tipos, 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 cursor utilizado para operaciones de base de datos | ||
table | Almacena un conjunto de resultados para su posterior procesamiento |