5° Anno TEORIA 4. Introduzione al linguaggio SQL | Page 39

16 . Il linguaggio SQL Vers . 9.3 – Marzo 2024
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