O que debes saber sobre os valores NULL

Comprender o uso de NULLs para evitar problemas de bases de datos

Os usuarios novos do mundo das bases de datos a miúdo son confundidos por un valor especial particular para o campo: o valor NULL. Este valor pódese atopar nun campo que contén calquera tipo de datos e ten un significado moi especial no contexto dunha base de datos relacional. Probablemente sexa mellor comezar a nosa discusión de NULL con algunhas palabras sobre o que NULL non é:

Pola contra, NULL é o valor que se usa para representar unha peza de datos descoñecida. Moitas veces, os programadores de bases de datos usarán a frase "un valor NULL", pero isto é incorrecto. Lembre: un NULL é un valor descoñecido no que o campo aparece en branco.

NULL no mundo real

Vexamos un exemplo sinxelo: unha táboa que contén o inventario dun posto de froitas. Supoña que o noso inventario contén 10 mazás e tres laranxas. Tamén temos ameixas, pero a información do noso inventario é incompleta e non sabemos cantas (se hai) ameixas están en stock. Usando o valor NULL, teriamos a táboa de inventario mostrada na táboa seguinte.

Inventario Stand Fruit Stand

InventarioID Elemento Cantidade
1 Mazás 10
2 Naranjas 3
3 Ameixas NULL


Sería claramente incorrecto incluír unha cantidade de 0 para o rexistro de ameixas, porque iso implicaría que non tivemos ameixas no inventario. Pola contra, poderiamos ter algunhas ameixas, pero non estamos seguros.

¿NULL ou NO NULL?

Pódese deseñar unha táboa para permitir ou non valores NULL.

Aquí tes un exemplo de SQL que crea unha táboa de inventario que permite algúns NULL:

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

A táboa de inventario aquí non permite valores NULL para as columnas InventoryID e Item , senón que lles permite a columna Cantidade .

Ao permitir que un valor NULL estea perfectamente ben, os valores NULL poden causar problemas porque calquera comparación de valores en que un é NULL sempre resulta en NULL.

Para comprobar se a táboa contén valores NULL, use o operador IS NULL ou IS NOT NULL. Aquí tes un exemplo de IS NULL:

SQL> SELECCIONE INVENTARIOID, ITEM, QUANTITY FROM INVENTORY DONDE A CANTIDAD NON É NULL;

Dado o noso exemplo aquí, isto volvería:

InventarioID Elemento Cantidade
3 Ameixas

Funcionando en NULLs

Traballar con valores NULL a miúdo produce resultados NULL, dependendo da operación SQL . Por exemplo, supoñendo que A é NULL:

Operadores aritméticos

Operadores de comparación

Estes son só algúns exemplos de operadores que sempre devolverán NULL se un operando é NULL. Existen moitas consultas máis complexas e todas son complicadas por valores NULL. O punto de inicio é que, se permite valores NULL na súa base de datos, comprenda as implicacións e o plan para eles.

Isto é NULL en poucas palabras!