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;
  
Abrir en editor

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
1112024-01-15
2322024-01-18
3512024-02-02
4232024-02-10
5642024-02-14
Tabla Pedidos en el editor SQL. Cinco pedidos enlazan clientes y empleados.
ID_Cliente Nombre_Cliente Ciudad Pais
1Ana GarcíaMadridEspaña
2Luis PérezBarcelonaEspaña
3María LópezValenciaEspaña
4Carlos RuizMadridEspaña
6John SmithLondonUK
… 5 clientes más en la demo (10 en total)
Tabla Clientes (extracto). Diez clientes; cinco tienen pedidos.

IS NOT NULL en SQL

Para quedarte solo con clientes que 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;
  
Abrir en editor

Resumen NULL

  • NULL = sin valor; distinto de 0 o cadena vacía.
  • Usa IS NULL e IS NOT NULL , nunca = NULL .
  • Muy habitual tras LEFT JOIN / RIGHT JOIN sin 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;
  
Abrir en editor

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;
  
Abrir en editor

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.