Valori NULL
Rappresentare un dato mancante
Sezione intitolata “Rappresentare un dato mancante”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”.
La colonna esiste, ma per quella riga non è disponibile alcun valore.
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 non funziona come previsto:
SELECT nome, emailFROM clientiWHERE email = NULL;La forma corretta è:
SELECT nome, emailFROM clientiWHERE email IS NULL;La condizione corretta chiede se l’email manca, non se è uguale a un valore chiamato NULL.
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
Consideralo semplicemente un dato mancante o sconosciuto.
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.