NULL en SQL: valores nulos
En SQL, un valor
NULL
significa ausencia de dato
: el campo no tiene valor asignado. No es lo mismo que cero, cadena vacía ni espacio en blanco.
NULL en SQL: valores nulos es una pieza habitual del flujo SQL: consultar, filtrar, agrupar o modificar datos. Cada ejemplo usa tablas de demostración para que puedas experimentar sin riesgo.
Cómo practicar: ejecuta la consulta tal cual, revisa columnas y tipos, luego cambia un filtro o un alias y vuelve a ejecutar.
Los
NULL
aparecen con frecuencia tras un
LEFT JOIN
o
RIGHT JOIN
cuando no hay fila coincidente en la otra tabla.
Sintaxis IS NULL e IS NOT NULL
No puedes comparar con
= NULL
ni
<> NULL
. Usa los operadores específicos:
Filas con valor nulo
SELECT columna
FROM tabla
WHERE columna IS NULL;
Filas con valor no nulo
SELECT columna
FROM tabla
WHERE columna IS NOT NULL;
IS NULL en SQL con JOIN
Tras unir
Clientes
con
Pedidos
, las filas sin pedido tienen
ID_Pedido IS NULL
:
Clientes sin ningún pedido
SELECT Clientes.Nombre_Cliente
FROM Clientes
LEFT JOIN Pedidos ON Clientes.ID_Cliente = Pedidos.ID_Cliente
WHERE Pedidos.ID_Pedido IS NULL
ORDER BY Clientes.Nombre_Cliente;
Resultado: cinco clientes sin pedidos en la base de datos de demostración.
| Nombre_Cliente |
|---|
| Carlos Ruiz |
| Hans Müller |
| Luca Rossi |
| Marie Dubois |
| Sofia Anders |
Tablas demo para NULL
Tabla Pedidos (demo)
La sintaxis indica el orden de argumentos y palabras clave. Copia la plantilla y sustituye nombres de columnas o literales entre comillas simples.
| ID_Pedido | ID_Cliente | ID_Empleado | Fecha |
|---|---|---|---|
| 1 | 1 | 1 | 2024-01-15 |
| 2 | 3 | 2 | 2024-01-18 |
| 3 | 5 | 1 | 2024-02-02 |
| 4 | 2 | 3 | 2024-02-10 |
| 5 | 6 | 4 | 2024-02-14 |
| ID_Cliente | Nombre_Cliente | Ciudad | Pais |
|---|---|---|---|
| 1 | Ana García | Madrid | España |
| 2 | Luis Pérez | Barcelona | España |
| 3 | María López | Valencia | España |
| 4 | Carlos Ruiz | Madrid | España |
| 6 | John Smith | London | UK |
| … 5 clientes más en la demo (10 en total) | |||
IS NOT NULL en SQL
Para quedarte solo con clientes que sí tienen al menos un pedido:
Clientes con pedido
SELECT Clientes.Nombre_Cliente, Pedidos.ID_Pedido
FROM Clientes
LEFT JOIN Pedidos ON Clientes.ID_Cliente = Pedidos.ID_Cliente
WHERE Pedidos.ID_Pedido IS NOT NULL
ORDER BY Clientes.Nombre_Cliente;
Resumen NULL
-
NULL= sin valor; distinto de 0 o cadena vacía. -
Usa
IS NULLeIS NOT NULL, nunca= NULL. -
Muy habitual tras
LEFT JOIN/RIGHT JOINsin coincidencia. - Siguiente paso: alias con AS .
Cómo practicar en el editor
1. Pulsa Pruébalo tú mismo en un ejemplo.
2. Cambia un filtro, columna o literal.
3. Ejecuta y compara el resultado con la tabla de ejemplo.
Practica con ejercicios
Repasa la lección con consultas sobre Clientes (Elena Torres, Valencia…) y Productos (pera, mango, fresa) de nuestra base demo.
Ejercicio: Clientes sin pedido (IS NULL)
Detecta valores NULL tras un LEFT JOIN. Usa la tabla Clientes de la demo (Elena Torres, Valencia…).
Consulta
SELECT Clientes.Nombre_Cliente
FROM Clientes
LEFT JOIN Pedidos ON Clientes.ID_Cliente = Pedidos.ID_Cliente
WHERE Pedidos.ID_Pedido IS NULL
ORDER BY Clientes.Nombre_Cliente;
Ejercicio: Clientes con al menos un pedido
Practica IS NOT NULL para exigir coincidencia. Usa la tabla Clientes de la demo (Elena Torres, Valencia…).
Consulta
SELECT Clientes.Nombre_Cliente, Pedidos.ID_Pedido
FROM Clientes
LEFT JOIN Pedidos ON Clientes.ID_Cliente = Pedidos.ID_Cliente
WHERE Pedidos.ID_Pedido IS NOT NULL
ORDER BY Clientes.Nombre_Cliente;
Cómo practicar
1. Pulsa Ejecutar aquí en el bloque.
2. Modifica la consulta (filtro, columnas…).
3. O abre el editor para más espacio.
Comprueba lo aprendido
Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.