Módulo 00 · lección 7

NULL: cuando no hay valor

El fundador añadió al catálogo una Gift Card, una tarjeta regalo. Pero ¿a qué categoría pertenece? No es Electronics, no es Home… no es ninguna. ¿Qué pones entonces en la columna category? Desde luego, ni «0» ni una cadena vacía.

Cuando no hay valor

A veces sencillamente no hay valor. Una Gift Card no pertenece a ninguna categoría, así que ¿qué escribes en category? Justo para eso existe NULL.

NULL ≠ cero ≠ texto vacío

NULL significa «no hay valor» o «se desconoce». Es fácil confundirlo, así que recuerda la diferencia:

ValorQué es
0un número concreto: el cero
''un texto vacío, pero que existe
NULLno hay valor en absoluto

En GadgetHub la tarjeta regalo tiene category = NULL: sencillamente no tiene categoría.

NULL es «contagioso» en las comparaciones

La trampa principal: category = NULL no funciona como esperarías; el resultado no es ni verdadero ni falso, sino «desconocido». Por eso NULL se comprueba con un operador especial, IS NULL (más sobre esto en el módulo de filtrado):

SELECT <columnas>
FROM <tabla>
WHERE <columna> IS NULL;

Compruébalo tú mismo

En el ejercicio hay una consulta que encuentra el producto sin categoría. Fíjate en cómo se muestra NULL en el resultado (normalmente, en blanco).

Resumen

  • NULL = un valor ausente o desconocido; no es cero ni una cadena vacía.
  • Se comprueba con IS NULL, no con = NULL.