00 SQL Server TIPOS DE DATOS
00 SQL Server TIPOS DE DATOS
En esta sección repasaremos los tipos de datos disponibles y aplicables en Transact-SQL divididos por
categorías.
NUMÉRICOS
1. INT: Datos numéricos enteros con una capacidad máxima de almacenamiento de 4 bytes, lo que engloba un
abanico comprendido entre el -2.147.483.648 y 2.147.483.647 Es el principal y más utilizado tipo de dato para
almacenar números enteros.
2. BIGINT: Datos numéricos enteros con una capacidad máxima de almacenamiento de 8 bytes, lo que engloba
un abanico comprendido entre el -9.223.372.036.854.775.808 y 9.223.372.036.854.775.807 (9*106). Con fin
de ahorrar recursos y definir un modelo más eficiente, bigint solo deberá ser utilizado para guardar valores
enteros que excedan el valor máximo de otros tipos de datos numéricos enteros.
3. SMALLINT: Datos numéricos enteros con una capacidad máxima de almacenamiento de 2 bytes, lo que
engloba un abanico comprendido entre el -32.768 y 32.767.
4. TINYINT: Datos numéricos enteros con una capacidad máxima de almacenamiento de 1 bytes, lo que
engloba un abanico comprendido entre el 0 y 255. Es el más eficiente pero también el más limitado lo cual
hace que deba utilizarse en casos específicos, por ejemplo, para guardar la edad de una persona o los días
de cada mes.
5. BIT: Tipo de dato que solo puede almacenar los valores 0 (FALSO), 1 (VERDADERO) o NULL. Funciona
igual que el tipo booleano de otros sistemas independientes.
6. DECIMAL: Datos numéricos con precisión y escalas fijas. La precisión estará comprendida entre 1 y 38 y el
tamaño de almacenamiento variará en función de la precisión, siendo el mínimo de bytes 5 y el máximo
17.
8. MONEY: Tipo de dato que representa valores monetarios o de moneda con una capacidad máxima de 8
bytes, lo que engloba un abanico comprendido entre el -922.337.203.685.477,5808 y el
922.337.203.685.477,5807.
9. SMALLMONEY: Tipo de dato que representa valores monetarios o de moneda con una capacidad máxima
de 4 bytes, lo que engloba un abanico comprendido entre el -214.748,3648 y el 214.748,3647.
10. FLOAT: Datos numéricos aproximados de coma flotante. Donde n de FLOAT[(n)], dependerá la precisión y
capacidad máxima de almacenamiento 4 - 8 bytes. El valor de “n” comprenderá los valores entre 1 y 53,
siendo 53 el valor por defecto.
11. REAL: Datos numéricos aproximados de coma flotante. El tipo real será el equivalente a FLOAT(24) lo que
definirá una capacidad de almacenamiento de 4 bytes.
CADENAS DE CARACTERES
No Unicode
CHAR: Para el almacenamiento de caracteres alfanuméricos de tamaño fijo. Donde n de CHAR(n) indica el
tamaño de la cadena de bytes comprendido entre el valor de 1 a 8000.
TEXT: Para el almacenamiento de valores de gran tamaño de datos de longitud fija y variable de caracteres y
binarios no Unicode. El tamaño de almacenamiento será de 2.147.483.647 bytes.
El tipo de dato text será eliminado en versiones futuras de SQL-Server por lo que se recomienda descartar su uso
actualmente.
Unicode
1
NCHAR: Para el almacenamiento de caracteres alfanuméricos de tamaño fijo. Donde n de NCHAR(n) indica el
tamaño de la cadena de bytes comprendido entre el valor de 1 a 4000.
NTEXT: Para el almacenamiento de valores de gran tamaño de datos de longitud fija y variable de caracteres y
binarios Unicode. El tamaño de almacenamiento será de 1.073.741.823 bytes.
El tipo de dato ntext será eliminado en versiones futuras de SQL-Server por lo que se recomienda descartar su
uso actualmente.
CADENAS BINARIAS
BINARY: Para el almacenamiento de datos binarios de longitud fija. Donde n de BINARY(n) indica el tamaño de
longitud, comprendida en un valor entre 1 a 8000 bytes.
VARBINARY: Para el almacenamiento de datos binarios de longitud variable. Donde n de VARBINARY(n) indica
el tamaño de longitud, comprendida en un valor entre 1 a 8000 bytes.
IMAGE: Para el almacenamiento de datos binarios de longitud variable con un tamaño de almacenamiento de
2.147.483.647 bytes.
El tipo de dato image será eliminado en versiones futuras de SQL-Server por lo que se recomienda descartar su
uso actualmente.
FECHA Y HORA
DATE: Para almacenar una fecha en formato por defecto: YYYY-MM-DD. Dicho formato podrá ser modificado
utilizando máscaras de entrada.
DATETIME: Para almacenar una fecha y hora con fracciones de segundo en formato por defecto AAAA-MM-DD
hh:mm:ss. Dicho formato podrá ser modificado utilizando máscaras de entrada.
SMALLDATETIME: Para almacenar una fecha y hora sin fracciones de segundo en formato por defecto AAAA-
MM-DD hh:mm:ss. Los segundos siempre estarán a O (:00).
DATETIME2: Para almacenar una fecha y hora con un rango y precisión mayor que DATETIME, en formato por
defecto AAA-MM-DD hh:mm:ss[nnnnnnn]. Dicho formato podrá ser modificado utilizando máscaras de entrada.
DATETIMEOFFSET: Para almacenar una fecha y hora con un rango y precisión como DATETIME2, agregando,
además, reconocimiento de la zona horaria basado en UTC (hora universal coordinada u hora del meridiano de
Greenwich). El formato por defecto será AAAA-MM-DD hh:mm:ss[.nnnnnnn] [+|-]hh:mm.
OTRAS
CURSOR: Para recorrer registros y resultados de una consulta. Ver en más detalle en la sección de CURSOR.
ROWVERSION: Para exponer números binarios generados automáticamente utilizado usualmente para indicar la
versión de las filas de una tabla.
SQL_VARIANT: Para almacenar valores de varios tipos de datos admitidos en SQL Server.
TABLE: Para almacenar temporalmente un conjunto de filas y devolver el resultado con valores de tabla.
GEOMETRÍA ESPACIAL: Para almacenar datos espaciales planares en un sistema de coordenadas euclídeo.
GEOGRAFÍA ESPACIAL: Para almacenar datos espaciales elipsoidales como coordenadas de latitud y longitud
GPS.
2
3