Skip to main content

Definição e usos apropriados de valores NULL

Análise combinatória números de quatro algarismos distintos (Abril 2025)

Análise combinatória números de quatro algarismos distintos (Abril 2025)
Anonim

Os usuários novos no mundo dos bancos de dados são frequentemente confundidos por um valor especial específico do campo - o valor NULL. Esse valor pode ser encontrado em um campo contendo qualquer tipo de dado e tem um significado muito especial dentro do contexto de um banco de dados relacional. Provavelmente, é melhor começar nossa discussão sobre NULL com algumas palavras sobre o que é NULL não :

  • NULL não é o número zero.
  • NULL não é o valor da string vazia (“”).

    Em vez disso, NULL é o valor usado para representar um dado desconhecido. Muitas vezes, os programadores de banco de dados usam a frase "um valor NULL", mas isso é incorreto. Lembre-se: um NULL é um valor desconhecido no qual o campo aparece em branco.

    NULL no mundo real

    Vamos dar uma olhada em um exemplo simples: uma tabela contendo o inventário de uma banca de frutas. Suponha que nosso estoque contenha 10 maçãs e três laranjas. Também temos estoques de ameixas, mas nossas informações de inventário estão incompletas e não sabemos quantas (se houver) ameixas estão em estoque. Usando o valor NULL, teríamos a tabela de inventário mostrada na tabela abaixo.

    Inventário de estande de frutas

    InventoryIDItemQuantidade
    1Maçãs10
    2Laranjas3
    3AmeixasNULO

    Seria claramente incorreto incluir uma quantidade de 0 para o registro de ameixas, porque isso implicaria que tínhamos não ameixas no inventário. Pelo contrário, podemos ter algumas ameixas, mas não temos certeza.

    Para NULL ou NOT NULL?

    Uma tabela pode ser projetada para permitir valores NULL ou não.

    Aqui está um exemplo de SQL que cria uma tabela de Inventário que permite alguns NULLs:

    SQL> CREATE TABLE INVENTORY (InventoryID INT NOT NULL, Item VARCHAR (20) NÃO NULL, Quantidade INT);

    A tabela de Inventário aqui não permite valores NULL para o InventoryID e a Item colunas, mas permite que eles para o Quantidade coluna.

    Embora permitir um valor NULL seja perfeitamente correto, os valores NULL podem causar problemas, porque qualquer comparação de valores em que um é NULL sempre resulta em NULL.

    Para verificar se sua tabela contém valores NULL, use o operador IS NULL ou IS NOT NULL. Aqui está um exemplo de IS NULL:

    SQL> SELECIONAR INVENTORYID, ITEM, QUANTIDADE DO INVENTÁRIO ONDE A QUANTIDADE NÃO É NULA;

    Dado nosso exemplo aqui, isso retornaria:

    InventoryIDItemQuantidade
    3Ameixas

    Operando em NULLs

    Trabalhar com valores NULL geralmente produz resultados NULL, dependendo da operação SQL. Por exemplo, supondo que A seja NULL:

    Operadores aritméticos

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

    Operadores de Comparação

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

    Estes são apenas alguns exemplos de operadores que sempre retornará NULL se um operando for NULL. Consultas muito mais complexas existem e todas são complicadas por valores NULL. O ponto inicial é que, se você permitir valores NULL em seu banco de dados, entenda as implicações e planeje-as.

    Isso é NULL em poucas palavras!