Valori NULL
Quando un dato manca
Sezione intitolata “Quando un dato manca”NULL significa che un valore non c’è oppure non è conosciuto.
Non significa zero. Non significa testo vuoto. Non significa “no”. Significa proprio: “qui il dato manca”.
È come una casella lasciata vuota in un modulo. La casella esiste, ma nessuno ci ha scritto dentro nulla.
Cercare valori mancanti
Sezione intitolata “Cercare valori mancanti”Per trovare i clienti senza email, scrivi:
SELECT nome, emailFROM clientiWHERE email IS NULL;La parte importante è IS NULL.
Con NULL non si usa =, perché NULL non si comporta come un valore normale.
Questa query sembra naturale, ma è sbagliata:
SELECT nome, emailFROM clientiWHERE email = NULL;La forma corretta è:
SELECT nome, emailFROM clientiWHERE email IS NULL;In pratica non chiedi “email è uguale a mancante?”. Chiedi “email è mancante?”.
Cercare valori presenti
Sezione intitolata “Cercare valori presenti”Il contrario di IS NULL è IS NOT NULL.
SELECT nome, emailFROM clientiWHERE email IS NOT NULL;Questa query mostra solo i clienti che hanno un’email salvata.
NULL, zero e testo vuoto
Sezione intitolata “NULL, zero e testo vuoto”Questi tre casi sono diversi:
| Valore | Significato |
|---|---|
NULL | il dato manca |
0 | il dato c’è ed è zero |
'' | il dato c’è ma è vuoto |
Per esempio, se sconto è NULL, forse non sai ancora lo sconto. Se sconto è 0, sai che lo sconto è zero.
Questa differenza è importante nei calcoli, nei filtri e nei report.
Quando lo incontrerai
Sezione intitolata “Quando lo incontrerai”NULL compare spesso quando:
- una colonna è facoltativa
- un dato non è stato ancora inserito
- un’informazione non è disponibile
- una
LEFT JOINnon trova una riga collegata
Pensarlo come “dato mancante” è la scorciatoia mentale più utile.
Riepilogo rapido
Sezione intitolata “Riepilogo rapido”NULLsignifica dato mancante o sconosciuto.- Non è uguale a zero.
- Non è uguale a testo vuoto.
- Si controlla con
IS NULL. - Il contrario si controlla con
IS NOT NULL.