El que ha de saber sobre els valors NULL

Comprendre l'ús de NULLs per evitar problemes de base de dades

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 poques paraules sobre el que NULL no és:

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

InventoryID Article Quantitat
1 Pomes 10
2 Taronges 3
3 Prunes NUL


Seria clarament incorrecte incloure una quantitat de 0 per al registre de les prunes, ja que això implicaria que no teníem 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 a les columnes InventoryID i Item , sinó que els permet la columna Quantitat .

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:

InventoryID Article Quantitat
3 Prunes

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

Operadors de comparació

Aquests són només alguns exemples d'operadors que sempre retornaran 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!