Módulo 2 · Filtrar datos

Trabaja correctamente con valores NULL

Detecta datos ausentes sin confundirlos con cero o texto vacío.

18 minNivel InicialAntes necesitas: WHERE

0 de 45 lecciones

Al terminar, podrás

  • Distinguir NULL de cero y texto vacío.
  • Buscar valores ausentes con IS NULL.
  • Explicar por qué una comparación ordinaria con NULL no es verdadera.

Recupera lo aprendido: ¿Un correo ausente equivale a una cadena vacía o al número 0?

La idea clave

NULL representa la ausencia de un valor conocido. No significa cero, texto vacío ni falso. Como no hay un valor con el que comparar, expresiones como email = NULL no producen verdadero: producen un resultado desconocido.

Qué ocurre al comparar un correo
emailemail = 'ana@example.test'email = NULLemail IS NULL
ana@example.testverdaderodesconocidofalso
NULLdesconocidodesconocidoverdadero

La clave es que desconocido no cuenta como verdadero. Por eso WHERE descarta esas filas y para preguntar por ausencia necesitas IS NULL.

Lógica de tres valores: una condición SQL puede ser verdadera, falsa o desconocida. WHERE conserva únicamente las filas cuya condición es verdadera.

La sintaxis básica

Estructura
WHERE columna IS NULL
WHERE columna IS NOT NULL

Utiliza IS NULL para localizar valores ausentes e IS NOT NULL para conservar las filas que sí contienen un valor.

Ejemplo paso a paso

Datos relevantes de la tabla clientes
idnombreemail
1Ana Torresana@example.test
2Luis Martínluis@example.test
3Marta Ruizmarta@example.test
4Diego LópezNULL
5Sara Gómezsara@example.test
6Pablo SanzNULL
7Lucía Vegalucia@example.test
8Hugo Castrohugo@example.test
9Noa Vidalnoa@example.test
10Iván Moraivan@example.test
11Elena Reyelena@example.test
12Mario GilNULL

Buscamos los clientes cuyo correo todavía no se conoce.

SQL
SELECT nombre, email
FROM clientes
WHERE email IS NULL;
Resultado esperado
nombreemail
Diego LópezNULL
Pablo SanzNULL
Mario GilNULL

Cómo funciona

  1. El motor examina la columna email de cada fila.
  2. IS NULL es verdadero únicamente cuando el valor está ausente.
  3. Las filas que contienen una dirección de correo quedan fuera.
Comprueba tu comprensión

¿Qué ocurre con la condición email = NULL?

Un error habitual

Comparar NULL con el signo igual

Ejemplo con error
SELECT nombre
FROM clientes
WHERE email = NULL;

La consulta no identifica los correos ausentes. Sustituye la comparación por WHERE email IS NULL. Del mismo modo, utiliza IS NOT NULL en lugar de <> NULL.

Practica con datos

Laboratorio SQL

Resuelve la consulta

Pendiente

Escribe una consulta que devuelva nombre y email de los clientes que sí tengan email.

Resultado esperado: 9 filas con nombre, email. El orden de las filas no importa.

Ver tablas y datos

Cargando la estructura del ejercicio…

La consulta usa datos ficticios y se ejecuta solo en este navegador.

Fuentes técnicas consultadas

Las referencias explican las comparaciones con valores ausentes y el hecho de que WHERE solo conserve condiciones verdaderas.

Comprueba si puedes explicarlo

Si email es NULL, ¿WHERE email <> una dirección conocida conserva esa fila?

Ver respuesta razonada

No. La comparación produce desconocido. Para incluir también los correos ausentes, combina la comparación con OR email IS NULL. NOT tampoco convierte desconocido en verdadero.

Responde antes de abrir la explicación. Si necesitaste ayuda, cierra la respuesta y vuelve a explicarlo con tus palabras antes de dar la lección por aprendida.

Qué debes recordar

  • NULL representa un valor desconocido o ausente.
  • Usa IS NULL e IS NOT NULL, no = NULL ni <> NULL.
  • WHERE conserva únicamente condiciones verdaderas; las desconocidas quedan fuera.

A continuación: Continúa con Práctica: elige el filtro adecuado.

Para una comparación entre dos valores opcionales que siempre devuelva verdadero o falso, amplía este modelo con IS DISTINCT FROM.

Conceptos relacionados