Tipos de datos
En Transact SQL, la elección del tipo de datos adecuado es fundamental para optimizar el rendimiento, asegurar la integridad de los datos y gestionar eficientemente el almacenamiento. A continuación, se detallan los tipos de datos más comunes, clasificados por su naturaleza.
🔢 Tipos Numéricos
Section titled “🔢 Tipos Numéricos”Estos tipos se utilizan para almacenar valores numéricos, desde enteros pequeños hasta números decimales de alta precisión y valores monetarios.
| Tipo | Rango | Descripción |
|---|---|---|
Bit | 0 a 1 | Un solo bit de información, ideal para valores booleanos. |
Tinyint | 0 a 255 | Entero de 8 bits sin signo, perfecto para números pequeños y positivos. |
SmallInt | -32,768 a 32,767 | Entero de 16 bits con signo. |
Int | -2,147,483,648 a 2,147,483,647 | El tipo de entero más común, de 32 bits con signo. |
BigInt | -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 | Entero de 64 bits con signo, para números extremadamente grandes. |
Decimal(p, s) | Depende de la precisión | Números decimales exactos. p = precisión total (número de dígitos); s = escala (número de dígitos a la derecha del punto decimal). |
Float | -1.79E+308 a 1.79E+308 | Valor de coma flotante de precisión doble. |
Real | -3.40E+38 a 3.40E+38 | Valor de coma flotante de precisión simple. |
Money | -922,337,203,685,477.5808 a 922,337,203,685,477.5807 | Datos monetarios con alta precisión (19 dígitos). |
SmallMoney | -214,748.3648 a 214,748.3647 | Datos monetarios con precisión media (10 dígitos). |
Todos los datos enteros pueden marcarse con la propiedad IDENTITY para hacerlos autonuméricos, generando valores únicos automáticamente para nuevas filas.
💬 Tipos de Caracteres y Cadenas de Texto
Section titled “💬 Tipos de Caracteres y Cadenas de Texto”Estos tipos se utilizan para almacenar texto, adaptándose a diferentes requisitos de longitud y codificación (Unicode).
| Tipo | Descripción |
|---|---|
char(n) | Cadena de caracteres de longitud fija. Ocupa n bytes, rellenando con espacios si la cadena es más corta. |
varchar(n) | Cadena de caracteres de longitud variable. Almacena hasta n bytes, ocupando solo el espacio necesario. |
nchar(n) | Cadena de caracteres Unicode de longitud fija. Almacena hasta n caracteres, ideal para datos multilingües. |
nvarchar(n) | Cadena de caracteres Unicode de longitud variable. Almacena hasta n caracteres, optimizado para multilingües. |
🗓️ Tipos de Fecha y Hora
Section titled “🗓️ Tipos de Fecha y Hora”Para almacenar información temporal, desde fechas precisas hasta estampas de tiempo.
| Tipo | Formato Ejemplo | Descripción |
|---|---|---|
Datetime | AAAA-MM-DD hh:mm:ss.mmm | Almacena fecha y hora con precisión de milisegundos (3.33ms). |
SmallDatetime | AAAA-MM-DD hh:mm:ss | Almacena fecha y hora con una precisión de 1 minuto. |
TimeStamp | Automático | No es una marca de tiempo tradicional; se usa para versionar filas en la base de datos. |
📦 Tipos Binarios
Section titled “📦 Tipos Binarios”Para almacenar datos en formato binario, como imágenes, archivos o cualquier otra información no textual.
| Tipo | Descripción |
|---|---|
Binary(n) | Cadena binaria de longitud fija de hasta 8,000 bytes. Rellena con ceros si es más corta. |
Varbinary(n) | Cadena binaria de longitud variable con una longitud máxima de 8,000 bytes. Almacena solo el espacio necesario. |
Varbinary(max) | Cadena binaria de longitud variable con una longitud máxima de 2^31-1 bytes (aproximadamente 2 GB), para grandes objetos. |
🌟 Otros Tipos Especiales
Section titled “🌟 Otros Tipos Especiales”Tipos de datos específicos para casos de uso avanzados o identificadores únicos.
| Tipo | Descripción |
|---|---|
UniqueIdentifier | Identificador Único Global (GUID), un número de 16 bytes que garantiza la unicidad. Se genera con NEWID(). |
XML | Tipo de datos para almacenar documentos XML completos, permitiendo consultas y manipulaciones específicas de XML. |