Puedes ejecutar cualquier consulta SQL en nuestra consola interactiva: Abrir consola SQL →
IS NULL en SQL: detectar valores vacíos correctamente
En SQL, un valor NULL representa “sin dato”. La condición IS NULL permite detectar estos valores vacíos, y es esencial para limpieza de datos, validaciones y reportes.
Tabla de contenidos
1. ¿Qué es NULL?
NULL significa “sin valor”. No es cero, no es una cadena vacía, no es falso: es simplemente ausencia de dato.
INSERT INTO usuarios (id, nombre, ciudad)
VALUES (1, 'Ana', NULL);
2. IS NULL
SELECT * FROM usuarios
WHERE ciudad IS NULL;
Devuelve usuarios sin ciudad registrada.
3. IS NOT NULL
SELECT * FROM usuarios
WHERE ciudad IS NOT NULL;
4. Comparaciones incorrectas
NULL no puede compararse con = o != Esto NO funciona:
-- INCORRECTO
WHERE ciudad = NULL;
-- CORRECTO
WHERE ciudad IS NULL;
5. Funciones con NULL
Las funciones ignoran NULL por defecto:
SELECT AVG(edad) FROM usuarios;
-- Ignora edades NULL
6. Ejemplos prácticos
SELECT * FROM productos WHERE descripcion IS NULL;
SELECT * FROM empleados WHERE telefono IS NOT NULL;
SELECT COUNT(*) FROM usuarios WHERE ciudad IS NULL;
SELECT * FROM pedidos WHERE fecha_envio IS NULL;
7. Ejercicios para practicar
- Filtra usuarios sin ciudad.
- Filtra productos con descripción vacía (NULL).
- Filtra empleados con teléfono registrado.
- Cuenta cuántos usuarios tienen ciudad NULL.
- Explica por qué “= NULL” es incorrecto.
SELECT * FROM usuarios WHERE ciudad IS NULL;
SELECT * FROM productos WHERE descripcion IS NULL;
SELECT * FROM empleados WHERE telefono IS NOT NULL;
SELECT COUNT(*) FROM usuarios WHERE ciudad IS NULL;
-- Porque NULL no es un valor, es ausencia de dato.
8. Mini‑proyecto: Detectar datos incompletos
CREATE TABLE clientes (
id INT PRIMARY KEY,
nombre VARCHAR(50),
email VARCHAR(100)
);
INSERT INTO clientes VALUES
(1, 'Ana', NULL),
(2, 'Luis', 'luis@mail.com'),
(3, 'Marta', NULL);
SELECT * FROM clientes
WHERE email IS NULL;
9. Errores comunes
- Usar “= NULL” en lugar de IS NULL.
- Olvidar que NULL no es una cadena vacía.
- Asumir que COUNT incluye NULL (no lo hace).
- Confundir NULL con 0.
10. Preguntas frecuentes
¿NULL es lo mismo que ''?
No, '' es una cadena vacía; NULL es ausencia de dato.
¿Las funciones ignoran NULL?
Sí, casi todas las funciones lo ignoran.