Blog

Postado em em 24 de novembro de 2023

Valores Nulos no SQL – IS NULL e IS NOT NULL no SQL

Aprenda o que são e como trabalhar com valores nulos no SQL e entenda a diferença entre valores nulos e valores vazios.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Valores Nulos no SQL – IS NULL e IS NOT NULL no SQL

Na aula de hoje, vou te mostrar como trabalhar com valores nulos no SQL e explicar a diferença entre nulos e vazios.

Vamos começar entendendo o que é um valor nulo, frequentemente confundido com um valor vazio. Isso é crucial quando você está filtrando dados usando o comando WHERE no SQL.

Veremos como o comando WHERE com o IS NULL no SQL pode ser usado para filtrar valores nulos em uma base de dados e como o IS NOT NULL no SQL nos ajuda a obter valores que não são nulos.

Entender como lidar com valores nulos no SQL é fundamental para garantir que suas análises sejam feitas da maneira correta, filtrando as informações de forma precisa.

O que é NULL no SQL?

No SQL, os valores nulos (null) indicam a ausência de dados em uma determinada coluna do banco de dados. Essa ausência difere de um valor vazio, zero ou até mesmo um espaço, pois o valor nulo representa a inexistência de um valor conhecido ou aplicável.

A utilização de valores nulos em colunas de uma tabela serve para indicar que os dados correspondentes a essa coluna são desconhecidos, indisponíveis ou simplesmente não aplicáveis.

Por outro lado, valores vazios normalmente se referem a um valor existente, embora esse valor possa ser uma linha completamente vazia. Essa distinção é fundamental para compreender como os dados são representados e tratados no SQL.

Valor Nulo no Banco de Dados

Para aprofundarmos nosso entendimento sobre valores null no SQL, vamos analisar um exemplo prático. Vou carregar a tabela de clientes do meu banco de dados utilizando o comando:

SELECT * FROM clientes;

Essa tabela contém diversas informações sobre os clientes de uma empresa, incluindo a coluna de Telefone, que possui alguns valores null.

Tabela clientes exibindo o valor de null

Agora, suponha que eu queira contar quantos clientes temos nessa tabela. Para isso, bastaria executar o seguinte comando:

SELECT COUNT(id_cliente) FROM clientes;

A função COUNT é empregada para contar quantas linhas estão preenchidas com valores não nulos. Dessa forma, obteremos o resultado de 100, representando a quantidade de linhas e, por consequência, a quantidade de clientes registrados.

Contagem de clientes pelo id_cliente

No entanto, é importante observar que a função COUNT conta os valores não nulos, e o resultado pode variar dependendo da coluna selecionada para a contagem.

Por exemplo, se utilizarmos a mesma função para contar os valores na coluna de telefone, que contém valores nulos, o resultado será diferente.

SELECT COUNT(telefone) FROM clientes;
Contagem de clientes pelo telefone

Isso indica que temos 6 valores nulos na coluna de telefone. Vale ressaltar que nulo não é o mesmo que vazio. Se tivéssemos valores vazios em vez de nulos na coluna de telefone, a função COUNT os contaria normalmente.

Comando WHERE – Filtrando os Valores Nulos na Tabela

Como você percebeu, valores nulos podem complicar uma análise se não forem identificados. Uma maneira de identificá-los dentro de uma tabela do banco de dados é por meio do comando WHERE no SQL.

O comando WHERE possibilita filtrar a tabela de diversas maneiras, incluindo a filtragem de valores nulos. No entanto, aqui é importante mais uma vez diferenciar valores nulos de valores vazios.

Vamos executar um filtro na tabela, buscando apenas os valores vazios:

SELECT * FROM clientes
WHERE telefone = '';

Nesse exemplo, estamos selecionando todos os valores da tabela clientes onde o telefone é igual a vazio. Como resultado, teremos apenas uma linha exibida em nossa tabela.

Filtrando valores vazios

Observe que, de fato, o valor na coluna Telefone é uma string vazia, diferente de quando temos um valor nulo, que é representado por null. Isso nos permite visualizar como o SQL trata valores nulos e valores vazios.

Para filtrar os valores nulos dessa tabela com SQL, executaríamos o código da seguinte forma:

SELECT * FROM clientes
WHERE telefone IS NULL;

Agora estamos corretamente delimitando que queremos pegar todos os valores da tabela cliente onde o telefone é nulo. Como resultado, teremos as 6 linhas que identificamos anteriormente com valores vazios:

Filtrando valores nulos

Essa abordagem possibilita identificar clientes que não têm nenhuma informação preenchida para o campo Telefone e encaminhá-los para o setor responsável para tratamento.

Da mesma forma que podemos filtrar a tabela apenas para os valores nulos, também podemos filtrá-la para os valores não nulos (not null):

SELECT * FROM clientes
WHERE telefone IS NOT NULL;

Esse código trará todas as linhas da tabela onde o telefone não é um valor nulo.

Tabela apenas com os valores não nulos

Assim, teremos a tabela completa dos clientes que preencheram algum valor para o telefone, incluindo o cliente que mencionamos anteriormente, que preencheu com um valor vazio.

Conclusão – Como Trabalhar com Valores Nulos no SQL – IS NULL e IS NOT NULL

Nessa aula, você aprendeu sobre o que são e como lidar com valores nulos no SQL. Compreendeu a diferença entre valores vazios e valores nulos, além de aprender a filtrar esses valores dentro de uma tabela em um banco de dados.

Saber lidar com valores nulos no SQL é uma etapa importante para conduzir análises de forma eficaz, garantindo a filtragem precisa de informações. Isso não apenas aprimora suas análises, mas também permite identificar problemas e lacunas de informações fundamentais em sua tabela.

Hashtag Treinamentos

Para acessar outras publicações de SQL, clique aqui!


Quer aprender mais sobre SQL com um minicurso básico gratuito?

Quer sair do zero no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador