El tipo de dato SQL CHAR
es uno de los más comunes y se utiliza principalmente para archivar cadenas de texto de tamaño fijo. Aunque en las bases de datos modernas el tipo de dato VARCHAR
ha ganado popularidad debido a su flexibilidad, CHAR
sigue siendo una excelente opción en situaciones donde se necesita asegurar una longitud constante para los datos.
En este artículo analizaremos sus principales características, proporcionaremos ejemplos prácticos de uso, explicaremos en qué situaciones resulta más conveniente emplearlo y compartiremos buenas prácticas para su implementación.
¿Qué es el tipo CHAR en SQL?
El tipo de dato sql CHAR
se emplea para guardar cadenas de texto con longitud fija. Esto significa que, independientemente de cuántos caracteres contenga la cadena que se inserte, la base de datos siempre reservará el espacio completo definido al crear el campo, garantizando un tamaño constante para cada registro.

Puede variar en tamaño dependiendo del sistema de bases de datos, pero generalmente tiene un límite máximo de 255 caracteres.
Cuando se almacena una cadena en una columna de tipo sql CHAR
, si la longitud de la cadena es menor que el número definido por n
, el campo se rellenará con espacios en blanco hasta alcanzar la longitud total.
Ejemplo con sql char
Considera el siguiente ejemplo de creación de tabla con tipo datos SQL char que utiliza el tipo de dato CHAR
:
Ejemplo de Tabla con CHAR en SQL
CREATE TABLE empleados (
id INT PRIMARY KEY,
codigo CHAR(5),
nombre CHAR(30)
);
En esta tabla, la columna codigo
está configurada para almacenar una cadena de longitud fija de 5 caracteres. Si se inserta una cadena de menos de 5 caracteres, los espacios restantes se rellenarán con espacios en blanco.
Diferencias en sql CHAR y VARCHAR
Al trabajar con bases de datos, es común preguntarse cuándo conviene usar en sql CHAR
o VARCHAR
para almacenar texto. Ambos tipos de datos almacenan cadenas, pero existen diferencias importantes:
Longitud fija frente a longitud variable
- CHAR: Este tipo de dato reserva un espacio fijo en la base de datos. Si la cadena que guardas es más corta que el tamaño definido, se completará automáticamente con espacios en blanco hasta alcanzar la longitud establecida.
- VARCHAR: cadenas de longitud variable. El espacio utilizado dependerá exactamente de la cantidad de caracteres almacenados, lo que evita desperdiciar memoria en cadenas cortas.
Rendimiento y eficiencia
- CHAR: Puede ofrecer un rendimiento ligeramente superior cuando todas las cadenas de un campo tienen la misma longitud, ya que la base de datos no necesita gestionar la longitud variable.
- VARCHAR: Es más eficiente en términos de almacenamiento cuando las cadenas tienen longitudes muy diversas, ya que utiliza solo el espacio necesario para cada registro.
Cuándo utilizarlos
- CHAR es recomendable para campos de tamaño constante, como códigos de país, códigos de producto o iniciales.
- VARCHAR resulta ideal cuando las cadenas pueden variar mucho, por ejemplo, nombres completos, direcciones, comentarios o descripciones.
Características del Tipo de Dato sql CHAR
1. Longitud Fija
Como ya mencionamos, la característica principal de sql CHAR
es su longitud fija. Independientemente de la longitud real de la cadena, el campo siempre ocupará el mismo espacio definido en el momento de la creación de la tabla. Si se inserta una cadena de longitud inferior a la especificada, el campo se rellenará con espacios.
Por ejemplo, si se defineen sql CHAR(10)
y se inserta el valor 'ABC'
, SQL almacenará la cadena como 'ABC '
(con 7 espacios en blanco).
3. Consumo de Espacio
El uso de CHAR
puede llevar a un uso ineficiente de espacio si se almacenan cadenas significativamente más cortas que la longitud definida. Por ejemplo, si defines un campo CHAR(100)
y la mayoría de las cadenas tienen 20 caracteres, los 80 caracteres restantes en cada fila serán desperdiciados en términos de almacenamiento.
Por esta razón, el tipo de dato sql CHAR
debe utilizarse solo cuando se sabe que la longitud de las cadenas será constante.
Ejemplo Completo de Uso de CHAR en SQL
-- Crear tabla con columnas CHAR de longitud fija
CREATE TABLE empleados (
id INT PRIMARY KEY,
codigo CHAR(5),
nombre CHAR(30)
);
-- Insertar registros (si el valor es menor, se rellena con espacios)
INSERT INTO empleados (id, codigo, nombre)
VALUES
(1, 'A1', 'Carlos'),
(2, 'B22', 'Ana María'),
(3, 'C333', 'Juan Pérez');
-- Consultar todos los registros
SELECT * FROM empleados;
-- Buscar un empleado por su código exacto
SELECT id, nombre
FROM empleados
WHERE codigo = 'A1';
-- Actualizar el nombre de un empleado
UPDATE empleados
SET nombre = 'Carlos Gómez'
WHERE id = 1;
-- Eliminar un registro por código
DELETE FROM empleados
WHERE codigo = 'C333';
Notas sobre CHAR
:
CHAR(n)
siempre ocupa el tamaño definido.- Si insertas menos caracteres, se completa con espacios (
'AB'
enCHAR(5)
será'AB '
). - Es útil para códigos fijos (ej. códigos de país, IDs cortos, etc.).
Casos de Uso para el Tipo de Dato sql CHAR
El uso de CHAR
es más adecuado en situaciones donde la longitud de los datos es conocida de antemano y no cambia. Algunos ejemplos de casos de uso recomendados incluyen:
Ejemplo de Códigos de Identificación con SQL CHAR
-- Crear una tabla para empleados con un código de identificación fijo (CHAR)
CREATE TABLE empleados (
id INT PRIMARY KEY,
codigo CHAR(5), -- Código de identificación fijo de 5 caracteres
nombre CHAR(30) -- Nombre almacenado en un campo de longitud fija
);
-- Insertar registros con códigos de identificación
INSERT INTO empleados (id, codigo, nombre) VALUES (1, 'A1234', 'Carlos Pérez');
INSERT INTO empleados (id, codigo, nombre) VALUES (2, 'B5678', 'María Gómez');
INSERT INTO empleados (id, codigo, nombre) VALUES (3, 'C9101', 'Ana Torres');
-- Consultar todos los empleados
SELECT * FROM empleados;
-- Buscar un empleado por su código exacto
SELECT *
FROM empleados
WHERE codigo = 'A1234';
-- Actualizar el código de un empleado
UPDATE empleados
SET codigo = 'Z9999'
WHERE id = 2;
-- Eliminar un empleado por código de identificación
DELETE FROM empleados
WHERE codigo = 'C9101';
Campos que almacenan códigos de identificación de longitud fija, como códigos de productos, códigos de países, o códigos de empleados, son buenos candidatos para el uso de CHAR
.
Buenas Prácticas para Utilizar CHAR en SQL
1. Emplea CHAR únicamente para cadenas de longitud fija
El tipo de dato CHAR
ofrece un rendimiento óptimo cuando todos los registros de un campo tienen la misma longitud, ya que la base de datos no necesita calcular la longitud de cada cadena al realizar consultas. Por eso, conviene usar CHAR
solo si se sabe con certeza que la longitud de los datos será constante.
2. Evita el desperdicio de espacio
Si los valores de un campo pueden variar considerablemente en tamaño, CHAR
podría generar un uso innecesario de almacenamiento debido a los espacios añadidos para completar la longitud definida. En estos casos, es más eficiente optar por VARCHAR
, que ajusta el espacio según la longitud real del texto.
3. Maneja cuidadosamente los espacios en blanco
Algunos motores de bases de datos consideran los espacios añadidos por CHAR
en las comparaciones, lo que puede producir resultados inesperados. Para evitar errores, conviene eliminar los espacios al consultar los datos utilizando funciones de recorte.
Ejemplo en SQL Server:
Ejemplo SQL char: LTRIM y RTRIM
SELECT *
FROM empleados
WHERE LTRIM(RTRIM(codigo)) = 'ABC';
4. Comprende el impacto en el almacenamiento
Cada sistema de bases de datos gestiona el almacenamiento de CHAR
de manera diferente. Es importante conocer cómo se asigna el espacio para evitar sorpresas en términos de rendimiento y eficiencia del almacenamiento. y las limitaciones del sistema que estés utilizando para evitar ineficiencias.
Conclusión
El tipo de dato CHAR
en SQL es una excelente opción para almacenar cadenas de texto de longitud fija. A pesar de la popularidad de VARCHAR
debido a su flexibilidad, CHAR
sigue siendo relevante en ciertos casos donde la longitud de los datos es constante y conocida de antemano. Con un uso adecuado, CHAR
puede mejorar la eficiencia en consultas y optimizar el almacenamiento en bases de datos.
Sin embargo, es importante usar en sql CHAR
de manera consciente y solo cuando las circunstancias lo ameriten, ya que un mal uso puede llevar al desperdicio de espacio y problemas en las consultas. Al seguir las buenas prácticas y comprender las diferencias entre CHAR
y otros tipos de datos, puedes diseñar bases de datos más eficientes y escalables.