Lição 1.5 · Tempo de leitura: ~7 min
NULL é o marcador especial que uma base de dados relacional usa quando um valor está ausente, é desconhecido ou não se aplica. Nesta lição, vai perceber o que NULL realmente significa, como se distingue dos valores normais e como trabalhar com ele com segurança em testes e consultas simples.
Valores NULL em Bases de Dados Relacionais: Significado, IS NULL e Lógica
Nas lições anteriores, vimos conceitos relacionais e tipos de dados. Agora é importante entender o que acontece quando uma coluna não tem um valor útil armazenado.

O que significa NULL numa base de dados relacional?
NULL não é um valor normal. É um marcador especial que informa a base de dados de que o valor está ausente, é desconhecido ou não se aplica.
Isto é importante porque NULL não se comporta como texto, número ou valor booleano. Ele segue regras próprias em comparações, filtros e cálculos.
O que NULL não é?
Para evitar confusão, lembre-se de que NULL não é:
- NULL não é 0: zero é um valor numérico real.
- NULL não é uma string vazia:
''continua a ser texto, mesmo sem caracteres. - NULL não é false: na lógica das bases de dados, NULL normalmente significa desconhecido.
Porque é que as bases de dados usam NULL?
As bases de dados usam NULL quando um valor não pode ser preenchido normalmente.
Casos típicos:
- Informação desconhecida: por exemplo, ainda não sabemos o nome do meio de um cliente.
- Não aplicável: o NIF de empresa não se aplica a uma pessoa singular.
- Dados em falta: alguma informação foi omitida durante a introdução.
Como funcionam IS NULL e IS NOT NULL?
Como NULL representa um estado desconhecido, operadores de comparação padrão como = e <> não funcionam corretamente com ele.
Por exemplo, valor = NULL não devolve verdadeiro. Para testar NULL corretamente, deve usar operadores específicos.
IS NULL
IS NULL é usado para encontrar linhas onde uma coluna não contém valor:
SELECT *
FROM address
WHERE address2 IS NULL;
IS NOT NULL
IS NOT NULL é usado para encontrar linhas onde uma coluna contém algum valor:
SELECT *
FROM address
WHERE address2 IS NOT NULL;
Como é que NULL se comporta em cálculos e lógica?
Uma das regras mais importantes é que NULL propaga-se frequentemente. Se NULL participa num cálculo, o resultado costuma ser NULL.
10 + NULL = NULL5 * NULL = NULL'Olá ' + NULL = NULL
A mesma ideia afeta comparações. Como NULL significa "desconhecido", muitas expressões com NULL não devolvem verdadeiro nem falso, mas um resultado desconhecido.
Principais conclusões desta lição:
NULLrepresenta dados ausentes, desconhecidos ou não aplicáveis.NULLé diferente de zero, string vazia e false.- Comparações padrão como
=e<>não servem para testar NULL. - Use
IS NULLeIS NOT NULLpara verificar NULL corretamente. - Cálculos com NULL muitas vezes devolvem NULL como resultado.
Perguntas Frequentes
NULL é o mesmo que uma string vazia?
Não. Uma string vazia continua a ser um valor de texto com comprimento zero. NULL significa que não existe um valor conhecido armazenado.
Porque valor = NULL não funciona?
Porque NULL representa um estado desconhecido, e os operadores de comparação normais não foram feitos para testar esse estado. Para isso, usa-se IS NULL.
NULL pode aparecer numa coluna numérica?
Sim. NULL não pertence a um único tipo de dados. Uma coluna numérica, de texto ou de data pode conter NULL, desde que uma restrição não o impeça.
Questões de Entrevista
Como explicaria NULL numa entrevista?
NULL é um marcador especial que representa dados ausentes, desconhecidos ou não aplicáveis. Não é o mesmo que zero, false ou string vazia, e segue regras próprias em comparações e cálculos.
Porque se usa IS NULL em vez de = NULL?
Porque NULL representa um estado desconhecido. Os operadores = e <> funcionam com valores normais, enquanto SQL fornece IS NULL e IS NOT NULL para testar NULL corretamente.
Qual é um erro comum ao trabalhar com NULL?
Um erro comum é tratar NULL como um valor normal em filtros, condições ou cálculos. Isso costuma gerar resultados inesperados em consultas.
Na próxima lição, vamos introduzir o próprio SQL e ver a estrutura básica de uma consulta.