Skip to main content

Definició i usos propis dels valors NULL

Anonim

Els usuaris nous al món de les bases de dades sovint es confonen amb un valor especial en particular per al camp: el valor NULL. Aquest valor es pot trobar en un camp que conté qualsevol tipus de dades i té un significat molt especial en el context d'una base de dades relacional. Probablement, és millor començar la nostra discussió sobre NULL amb unes paraules sobre el que és NULL no :

  • NULL no és el número zero.
  • NULL no és el valor de cadena buida ("").

    Per contra, NULL és el valor utilitzat per representar una part desconeguda de dades. Sovint, els programadors de la base de dades utilitzaran la frase "un valor NULL", però això és incorrecte. Recordeu: un NULL és un valor desconegut en el qual el camp apareix en blanc.

    NULL al món real

    Fem un cop d'ull a un exemple senzill: una taula que conté l'inventari d'un estand de fruita. Suposem que el nostre inventari conté 10 pomes i tres taronges. També tenim prunes, però la nostra informació d'inventari és incompleta i no sabem quantes (si hi ha) prunes estan en estoc. Mitjançant el valor NULL, tindríem la taula d'inventari que es mostra a la taula següent.

    Fruit Stand Inventory

    InventoryIDArticleQuantitat
    1Pomes10
    2Taronges3
    3PrunesNUL

    Seria clarament incorrecte incloure una quantitat de 0 per al registre de les prunes, ja que això implicaria que teníem no Prunes en inventari. Al contrari, podríem tenir algunes prunes, però no estem segurs.

    A NULL o NO NULL?

    Es pot dissenyar una taula per permetre o no valors NULL.

    Aquí teniu un exemple de SQL que crea una taula d'inventari que permet alguns NULL:

    SQL> CREATE TABLE INVENTORY (InventoryID INT NOT NULL, Item VARCHAR (20) NOT NULL, Quantity INT);

    La taula Inventari aquí no permet els valors NULL per al InventoryID i la Article columnes, però els permet fer el Quantitat columna.

    Tot i que permet que un valor NULL estigui perfectament bé, els valors NULL poden causar problemes perquè qualsevol comparació de valors en què un sigui NULL sempre resulta en NULL.

    Per comprovar si la vostra taula conté valors NULL, utilitzeu l'operador IS NULL o IS NOT NULL. Aquest és un exemple de IS NULL:

    SQL> SELECT INVENTORYID, ITEM, QUANTITY FROM INVENTORY ON QUANTITY NO IS NULL;

    Donat el nostre exemple aquí, això tornaria:

    InventoryIDArticleQuantitat
    3Prunes

    Funciona amb NULL

    Treballar amb valors NULL sovint produeix resultats NULL, depenent de l'operació SQL. Per exemple, suposant que A és NULL:

    Operadors aritmètics

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

    Operadors de comparació

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

    Aquests són només alguns exemples d'operadors que ho faran sempre torna NULL si un operant és NULL. Hi ha moltes consultes més complexes, i totes són complicades per valors NULL. El punt de partida és que, si permet valors NULL a la base de dades, entén les implicacions i el pla per a ells.

    Això és NULL en poques paraules!