Skip to main content

Definizione e usi corretti dei valori NULL

Il gran mistero del sangue Rh negativo (Giugno 2025)

Il gran mistero del sangue Rh negativo (Giugno 2025)
Anonim

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

    InventoryIDArticoloQuantità
    1Mele10
    2Arance3
    3PrugneNULLO

    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.

    A NULL o NOT NULL?

    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:

    InventoryIDArticoloQuantità
    3Prugne

    Operativo su NULL

    Lavorare con valori NULL spesso produce risultati NULL, a seconda dell'operazione SQL. Ad esempio, supponendo che A sia NULL:

    Operatori aritmetici

    • A + B = NULL
    • A - B = NULL
    • A * B = NULL
    • A / B = NULL

    Operatori di confronto

    • A = B = NULL
    • A! = B = NULL
    • A> B = NULL
    • A! <B = NULL

    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!