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:
| Valor | Qué es |
|---|---|
0 | un número concreto: el cero |
'' | un texto vacío, pero que existe |
NULL | no 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.