Puedes ejecutar cualquier consulta SQL en nuestra consola interactiva: Abrir consola SQL →
IS NOT NULL en SQL: filtra valores existentes
IS NOT NULL permite seleccionar filas donde una columna **sí tiene valor**. Es la contraparte de IS NULL y se usa constantemente para validar datos completos.
Tabla de contenidos
1. ¿Qué significa IS NOT NULL?
IS NOT NULL selecciona filas donde una columna **sí contiene un valor**. Es decir, no está vacía, no está sin dato, no es NULL.
SELECT * FROM usuarios
WHERE email IS NOT NULL;
2. Ejemplos básicos
SELECT * FROM productos
WHERE descripcion IS NOT NULL;
Devuelve productos que sí tienen descripción.
3. Comparaciones incorrectas
Igual que con IS NULL, esto es incorrecto:
-- INCORRECTO
WHERE email != NULL;
-- CORRECTO
WHERE email IS NOT NULL;
4. Funciones y NULL
Las funciones ignoran NULL, por lo que IS NOT NULL es útil para asegurar datos completos.
SELECT AVG(salario) FROM empleados
WHERE salario IS NOT NULL;
5. Ejemplos prácticos
SELECT * FROM clientes WHERE telefono IS NOT NULL;
SELECT * FROM pedidos WHERE fecha_envio IS NOT NULL;
SELECT COUNT(*) FROM usuarios WHERE ciudad IS NOT NULL;
SELECT * FROM empleados WHERE email IS NOT NULL;
6. Ejercicios para practicar
- Filtra usuarios con email registrado.
- Filtra productos con descripción.
- Filtra empleados con teléfono.
- Cuenta cuántos usuarios tienen ciudad registrada.
- Explica por qué “!= NULL” es incorrecto.
SELECT * FROM usuarios WHERE email IS NOT NULL;
SELECT * FROM productos WHERE descripcion IS NOT NULL;
SELECT * FROM empleados WHERE telefono IS NOT NULL;
SELECT COUNT(*) FROM usuarios WHERE ciudad IS NOT NULL;
-- Porque NULL no es un valor, es ausencia de dato.
7. Mini‑proyecto: Filtrar datos completos
CREATE TABLE empleados (
id INT PRIMARY KEY,
nombre VARCHAR(50),
email VARCHAR(100)
);
INSERT INTO empleados VALUES
(1, 'Ana', 'ana@mail.com'),
(2, 'Luis', NULL),
(3, 'Marta', 'marta@mail.com');
SELECT * FROM empleados
WHERE email IS NOT NULL;
8. Errores comunes
- Usar “!= NULL” en lugar de IS NOT NULL.
- Confundir NULL con cadena vacía.
- Asumir que COUNT incluye NULL (no lo hace).
- Olvidar que NULL significa ausencia de dato.
9. Preguntas frecuentes
¿IS NOT NULL detecta cadenas vacías?
No, '' no es NULL.
¿Las funciones ignoran NULL?
Sí, casi todas las funciones lo ignoran.