Gli utenti nuovi al mondo dei database sono spesso confusi da un valore speciale specifico del campo: il valore NULL. Questo valore può essere trovato in un campo contenente qualsiasi tipo di dati e ha un significato molto speciale nel contesto di un database relazionale. Probabilmente è meglio iniziare la nostra discussione su NULL con alcune parole su cosa sia NULL non :
- NULL non è il numero zero.
- NULL non è il valore della stringa vuota ("").
Piuttosto, NULL è il valore utilizzato per rappresentare un pezzo di dati sconosciuto. Spesso i programmatori di database usano la frase "un valore NULL", ma questo non è corretto. Ricorda: un NULL è un valore sconosciuto in cui il campo appare vuoto.
NULL nel mondo reale
Diamo un'occhiata a un semplice esempio: una tabella contenente l'inventario per un banco di frutta. Supponiamo che il nostro inventario contenga 10 mele e tre arance. Disponiamo anche di prugne, ma le nostre informazioni di inventario sono incomplete e non sappiamo quante (se ce ne sono) prugne sono disponibili. Usando il valore NULL, avremmo la tabella delle scorte mostrata nella tabella sottostante.
Inventario del banco di frutta
InventoryID | Articolo | Quantità |
1 | Mele | 10 |
2 | Arance | 3 |
3 | Prugne | NULLO |
Sarebbe chiaramente errato includere una quantità di 0 per il record di prugne, perché ciò implicherebbe che avessimo no prugne nell'inventario. Al contrario, potremmo avere alcune prugne, ma non siamo sicuri. Una tabella può essere progettata per consentire o meno valori NULL. Ecco un esempio SQL che crea una tabella Inventory che consente alcuni valori NULL: SQL> CREATE TABLE INVENTORY (InventoryID INT NOT NULL, Item VARCHAR (20) NOT NULL, Quantity INT); La tabella Inventario qui non consente valori NULL per InventoryID e il Articolo colonne, ma consente loro di Quantità colonna. Pur consentendo un valore NULL perfettamente corretto, i valori NULL possono causare problemi poiché qualsiasi confronto tra valori in cui uno è NULL risulta sempre in NULL. Per verificare se la tabella contiene valori NULL, utilizzare l'operatore IS NULL o IS NOT NULL. Ecco un esempio di IS NULL: SQL> SELECT INVENTORYID, ITEM, QUANTITY FROM INVENTORY WHERE QUANTITY NON È NULL; Dato il nostro esempio qui, ciò restituirebbe: Lavorare con valori NULL spesso produce risultati NULL, a seconda dell'operazione SQL. Ad esempio, supponendo che A sia NULL: Operatori aritmetici Operatori di confronto Questi sono solo alcuni esempi di operatori che lo faranno sempre restituisce NULL se un operando è NULL. Esistono query molto più complesse e tutte sono complicate da valori NULL. Il punto di ritiro è che, se si consentono valori NULL nel database, comprendere le implicazioni e pianificare per loro. Questo è NULL in poche parole!A NULL o NOT NULL?
InventoryID Articolo Quantità 3 Prugne
Operativo su NULL