16. Il linguaggio SQL Vers. 11.0 – Gennaio 2026
Il valore NULL
Il linguaggio SQL prevede un particolare simbolo indicato con NULL che viene utilizzato per indicare diverse situazioni( ad esempio quando il valore esiste ma è sconosciuto oppure quando il valore non esiste). Il valore del simbolo NULL assume un ruolo significativo nel risultato di una espressione logica o aritmetica.
Esistono alcune regole fondamentali da ricordare: a) un’ espressione aritmetica ha come risultato un valore sconosciuto( UNKNOWN) se un operando ha valore NULL; b) il confronto tra un valore NULL ed un qualsiasi altro valore( NULL compreso) produce sempre un valore UNKNOWN; c) il valore NULL non è una costante( quindi non può apparire in una espressione); d) se il predicato della clausola WHERE ha valore UNKNOWN la ennupla non viene considerata; e) nelle funzioni aggregate in generale le righe con valore NULL dell’ attributo considerato non vengono considerate; f) il valore UNKNOWN è un valore di verità come TRUE e FALSE
Vediamo ora i valori di verità degli operatori AND, OR, NOT in una logica a tre valori( TRUE, FALSE, UNKNOWN):
AND |
FALSE |
TRUE |
UNKNOWN |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
TRUE |
UNKNOWN |
UNKNOWN |
FALSE |
UNKNOWN |
UNKNOWN |
OR |
FALSE |
TRUE |
UNKNOWN |
FALSE |
FALSE |
TRUE |
UNKNOWN |
TRUE |
TRUE |
TRUE |
TRUE |
UNKNOWN |
UNKNOWN |
TRUE |
UNKNOWN |
VALORI FALSE TRUE UNKNOWN
NOT TRUE FALSE FALSE
Attenzione al significato di NULL in quanto l’ espressione WHERE Stipendio = NULL è errata nella sintassi non essendo il valore NULL una costante, mentre l’ espressione WHERE Stipendio IS NULL è sintatticamente corretta. N. B. NULL in pratica non è considerato un valore ma un simbolo che indica“ valore mancante”.
Nelle query per controllare se il valore di un attributo è presente oppure mancante( ossia è uguale a NULL) si ricorre ai predicati IS NULL ed IS NOT NULL nelle condizioni della clausola WHERE.
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 39