Salta ai contenuti

Valori NULL

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.

Per trovare i clienti senza email, scrivi:

SELECT nome, email
FROM clienti
WHERE 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, email
FROM clienti
WHERE email = NULL;

La forma corretta è:

SELECT nome, email
FROM clienti
WHERE email IS NULL;

In pratica non chiedi “email è uguale a mancante?”. Chiedi “email è mancante?”.

Il contrario di IS NULL è IS NOT NULL.

SELECT nome, email
FROM clienti
WHERE email IS NOT NULL;

Questa query mostra solo i clienti che hanno un’email salvata.

Questi tre casi sono diversi:

ValoreSignificato
NULLil dato manca
0il 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.

NULL compare spesso quando:

  • una colonna è facoltativa
  • un dato non è stato ancora inserito
  • un’informazione non è disponibile
  • una LEFT JOIN non trova una riga collegata

Pensarlo come “dato mancante” è la scorciatoia mentale più utile.

  • NULL significa 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.