Contagem de Valores NULL e NOT NULL em SQL: Guia Completo

Lidar com valores NULL em SQL é um desafio frequente para analistas de dados e profissionais de banco de dados. Essa dificuldade surge porque o tratamento de NULL pode ser complexo e gerar confusão, levando à frustração durante a análise de informações.

No entanto, compreender a natureza dos valores NULL e seu significado é essencial para obter análises de dados precisas e abrangentes. Este artigo abordará comandos SQL e suas aplicações para contagem de valores NULL e NOT NULL.

O que é um valor SQL NULL?

Um valor NULL representa a ausência de valor, não sendo equivalente a zero ou a um espaço em branco.

Portanto, os operadores de comparação usuais, como =, <, > e <>, não são aplicáveis diretamente a NULL. Se usados, o resultado será DESCONHECIDO.

Considere o valor NULL como um campo que foi deixado vazio durante a criação de um registro. É possível criar uma tabela e adicionar uma coluna sem atribuir-lhe um valor, resultando em um campo com valor NULL. Valores NULL podem ser inseridos em colunas de qualquer tipo de dado.

Para ilustrar, podemos criar uma nova tabela SQL usando a sintaxe a seguir:

 CREATE TABLE Funcionario (
    FirstName VARCHAR(50),
    LastName VARCHAR(50),
    PhoneNum VARCHAR(15),
    Salary FLOAT
);

INSERT INTO Funcionario (FirstName, LastName, PhoneNum, Salary)
VALUES
    ('Maxwell', 'Ayomide', '812-345-6789', 150000.00),
    ('David', 'Tosin', NULL, 450000.00),
    ('Eben', 'Teniola', '912-345-6789', 590000.00),
    ('Kenneth', 'Olisa', '809-456-8732', NULL),
    ('Esther', 'Oge', NULL, NULL);

É possível também atualizar valores NULL em uma tabela utilizando o comando UPDATE. Para isso, use a seguinte sintaxe:

UPDATE Funcionario
SET FirstName="Esther"
WHERE Salary = 200000;

Para visualizar o resultado, execute:

 SELECT * FROM Funcionario; 

Quando valores SQL NULL são úteis?

Um valor NULL pode ser empregado em diversas situações em SQL:

  • Quando os dados não estão disponíveis ou são desconhecidos no momento da entrada.
  • Quando os dados não se aplicam à entidade em questão. Por exemplo, em uma pesquisa, uma pergunta que solicita aos participantes que indiquem se têm filhos pode resultar em alguns valores NULL.

O que é a condição SQL IS NULL?

O comando SQL IS NULL é fundamental para qualquer programador SQL. Ele é utilizado para testar valores NULL, sendo mais eficiente na busca por esses valores. O comando retorna todas as linhas que contêm valores NULL na coluna especificada na consulta.

SELECT FirstName, LastName, PhoneNum
FROM Funcionario
WHERE PhoneNum IS NULL;

Esta consulta retornará todos os valores NULL da coluna PhoneNum.

O que é a condição SQL IS NOT NULL?

O comando SQL IS NOT NULL é o oposto do comando IS NULL.

Ele verifica valores que não são vazios (valores NOT NULL). Ele retornará todas as linhas de uma coluna que possuem um valor e excluirá todos os valores NULL da coluna especificada na consulta.

SELECT FirstName, LastName, PhoneNum
FROM Funcionario
WHERE PhoneNum IS NOT NULL;

Esta consulta retornará todos os valores NOT NULL da coluna PhoneNum.

Como contar valores SQL NULL em uma coluna?

O comando COUNT() é usado para contagem, sendo um comando útil ao analisar dados em tabelas SQL e trabalhar com subconsultas e tabelas temporárias.

Utilize esta consulta para contar o número de valores NULL na coluna PhoneNum.

SELECT COUNT(*) AS [Total Number of NULL]
FROM Funcionario
WHERE PhoneNum IS NULL

Isso retornará:

Como contar valores NOT NULL em uma coluna?

Utilize o comando NOT NULL para contar o número de valores não NULL na coluna PhoneNum.

SELECT COUNT(PhoneNum) AS [Total Number of Non-NULL Values]
FROM Funcionario
WHERE PhoneNum IS NOT NULL

Isso retornará:

Também é possível usar esta consulta para exibir o resultado em uma tabela:

SELECT SUM(CASE WHEN PhoneNum is null THEN 1 ELSE 0 END)
AS [Number Of Null Values],
COUNT(PhoneNum) AS [Number Of Non-Null Values]
FROM Funcionario

Nesta consulta, os comandos CASE e IS NULL foram utilizados para categorizar os valores NULL na coluna PhoneNum como 1. Esse valor foi somado e registrado nas colunas criadas “Number Of Null Values”.

Conte os valores NULL e prossiga com a análise

Apesar da complexidade que os valores NULL possam apresentar, eles são, na verdade, fáceis de manusear. Através do uso do comando COUNT(), você pode contabilizar valores NULL e não NULL com apenas algumas linhas de código SQL.

Uma vez que você se familiarize com os comandos SQL, poderá aplicá-los a diversos cenários e analisar seus dados com mais facilidade.