SQL Server

Tipos de datos en SQL Server: guía completa con ejemplos prácticos

Publicado por J. Panduro hace 5 meses

Tipos de datos en SQL Server: guía completa con ejemplos prácticos

Cuando comienzas a trabajar con bases de datos, uno de los errores más comunes es no prestar suficiente atención a los tipos de datos. Sin embargo, elegir el tipo correcto en SQL Server puede marcar la diferencia entre un sistema eficiente y uno lleno de problemas.


En este artículo aprenderás qué son los tipos de datos, cuáles son los más usados y cómo aplicarlos correctamente con ejemplos prácticos.


¿Qué son los tipos de datos en SQL Server?


Los tipos de datos en SQL Server definen qué tipo de información puede almacenar cada columna dentro de una tabla. Es decir, indican si un campo almacenará números, texto, fechas u otros valores específicos.


Por ejemplo, una columna puede estar diseñada para guardar:

  1. Números enteros (como cantidades o IDs)
  2. Texto (como nombres o descripciones)
  3. Fechas y horas (como registros de creación o nacimiento)
  4. Valores lógicos o booleanos (como verdadero o falso)


Elegir correctamente el tipo de dato es muy importante en el diseño de una base de datos, ya que influye directamente en su eficiencia y funcionamiento. Un buen uso de los tipos de datos permite:


  1. Mejor rendimiento en las consultas
  2. Menor consumo de memoria y almacenamiento
  3. Reducción de errores al insertar o consultar información
  4. Mayor precisión en el manejo de los datos


Tipos de datos numéricos


Estos se utilizan para almacenar números.


INT


El tipo de dato INT se utiliza para almacenar números enteros, es decir, números sin decimales. Puede representar valores positivos o negativos, lo que lo hace ideal para campos como identificadores, cantidades de productos, edades o contadores.


Este tipo de dato ocupa 4 bytes de almacenamiento y tiene un rango aproximado desde -2,147,483,648 hasta 2,147,483,647.

El uso de INT es muy común porque ofrece un buen equilibrio entre rendimiento y capacidad de almacenamiento, siendo suficiente para la mayoría de aplicaciones.


En resumen, INT es el tipo de dato ideal cuando necesitas trabajar con números enteros y no requieres decimales.

CREATE TABLE Usuarios (
Edad INT
);


Ejemplo:


INSERT INTO Usuarios (Edad) VALUES (25);


DECIMAL


El tipo de dato DECIMAL en SQL Server se utiliza para almacenar números con decimales de alta precisión, lo que lo hace ideal cuando se necesita exactitud en los cálculos, especialmente en valores como dinero, precios, impuestos o medidas exactas.


A diferencia de otros tipos numéricos, DECIMAL permite definir la precisión y la escala, es decir:

  1. Precisión: número total de dígitos que puede tener el número.
  2. Escala: cantidad de dígitos que se guardan después del punto decimal.


Por ejemplo, un campo definido como decimal(10,2) puede almacenar números con hasta 10 dígitos en total, de los cuales 2 son decimales (como 12345678.90).


Este tipo de dato es muy importante en sistemas financieros o contables, ya que evita errores de redondeo que pueden ocurrir con otros tipos de datos aproximados.


En resumen, DECIMAL es el tipo de dato ideal cuando se necesita precisión absoluta en números con decimales, garantizando cálculos exactos y confiables en la base de datos.


CREATE TABLE Productos (
Precio DECIMAL(10,2)
);


Ejemplo:


INSERT INTO Productos (Precio) VALUES (99.99);


Tipos de datos de texto


Se utilizan para almacenar cadenas de caracteres.


VARCHAR


El tipo de dato VARCHAR en SQL Server se utiliza para almacenar texto de longitud variable, es decir, cadenas de caracteres que pueden tener diferentes tamaños según el contenido. Es uno de los tipos más usados cuando se necesita guardar información como nombres, correos electrónicos, direcciones o descripciones.


A diferencia de otros tipos de datos como CHAR, que siempre reserva un espacio fijo, VARCHAR solo utiliza el espacio necesario según la cantidad de caracteres que se almacenen. Esto lo hace más eficiente en el uso de memoria y almacenamiento.


Al definir una columna VARCHAR, se debe indicar un tamaño máximo, por ejemplo VARCHAR(50) o VARCHAR(255). Este valor representa la cantidad máxima de caracteres que puede almacenar esa columna. Si se intenta guardar un texto más largo que el límite definido, la base de datos generará un error.

CREATE TABLE Clientes (
Nombre VARCHAR(100)
);


INSERT INTO Clientes (Nombre) VALUES ('Juan Pérez');


NVARCHAR


Similar a VARCHAR, pero permite caracteres Unicode (acentos, emojis, otros idiomas).

CREATE TABLE Usuarios (
Nombre NVARCHAR(100)
);


Útil si trabajas con:

  1. Español (tildes)
  2. Idiomas internacionales


Tipos de datos de fecha


Sirven para almacenar fechas y horas.


DATE


El tipo de dato DATE en SQL Server se utiliza para almacenar únicamente fechas, sin incluir información de hora. Es decir, permite guardar valores como año, mes y día, siendo ideal cuando solo se necesita registrar una fecha específica dentro de la base de datos.

Este tipo de dato es muy útil en situaciones como fechas de nacimiento, fechas de registro, fechas de entrega o cualquier evento que no requiera información de hora exacta.


El formato que maneja SQL Server para DATE es generalmente YYYY-MM-DD, lo que ayuda a mantener un estándar claro y ordenado en el almacenamiento de la información.


Una de sus ventajas principales es que optimiza el almacenamiento, ya que al no incluir la hora, ocupa menos espacio y facilita las comparaciones entre fechas.

CREATE TABLE Eventos (
Fecha DATE
);


DATETIME


Guarda fecha y hora.

CREATE TABLE Registros (
FechaRegistro DATETIME
);


Ejemplo:


INSERT INTO Registros (FechaRegistro)
VALUES (GETDATE());


Tipo de dato booleano


BIT

El tipo de dato BIT en SQL Server se utiliza para representar valores lógicos o booleanos, es decir, datos que solo pueden tener dos estados posibles.

Solo permite:


0 = falso

1 = verdadero


Este tipo de dato es muy útil cuando se necesita manejar información de tipo “sí o no”, como por ejemplo: si un usuario está activo o inactivo, si un producto está disponible o no, o si una condición ha sido cumplida dentro del sistema.


En SQL Server, el tipo BIT no solo acepta 0 y 1, sino que también puede almacenar NULL si la columna lo permite, lo cual representa un estado desconocido o no definido.


Una de sus principales ventajas es que ocupa muy poco espacio de almacenamiento, ya que está optimizado para valores simples de verdadero o falso, lo que lo hace eficiente en grandes bases de datos.


CREATE TABLE Usuarios (
Activo BIT
);


Ejemplo:


INSERT INTO Usuarios (Activo) VALUES (1);


Buenas prácticas al usar tipos de datos


  1. Usa INT para números enteros pequeños
  2. Usa DECIMAL para dinero (nunca FLOAT para precios)
  3. Usa VARCHAR en lugar de CHAR (más flexible)
  4. Usa NVARCHAR si necesitas soporte internacional
  5. Usa DATE o DATETIME según necesidad


Ejercicio práctico


Crea una tabla llamada EMPLEADOS con los siguientes campos:


  1. Id (entero)
  2. Nombre (texto)
  3. Salario (decimal)
  4. FechaIngreso (fecha)
  5. Activo (booleano)


Inténtalo tú primero.


Solución


CREATE TABLE Empleados (
Id INT,
Nombre VARCHAR(100),
Salario DECIMAL(10,2),
FechaIngreso DATE,
Activo BIT
);


Conclusión


Dominar los tipos de datos en SQL Server es fundamental para construir bases de datos eficientes, organizadas y profesionales. Una correcta elección del tipo de dato en cada columna permite asegurar la integridad de la información y optimizar el rendimiento del sistema.

Este conocimiento no solo ayuda a evitar errores comunes en el almacenamiento de datos, sino que también sienta las bases para trabajar con consultas más avanzadas, como JOINs, subconsultas y técnicas de optimización de rendimiento en bases de datos.

Sobre el autor

J. Panduro es desarrollador de software y creador de HPanduDigital. Comparte contenido sobre Desarrollo Web, inteligencia artificial, y transformación digital, basado en experiencias reales y proyectos prácticos.

Buscar artículos

Escribe al menos 2 caracteres para buscar.