sábado, 5 de novembro de 2016

Null Values

Olá!

Por padrão campos de uma tabela de um banco de dados (DB) podem suportar valores nulos, ou seja, é opcional designar um valor para o campo.

Sendo que quando o campo está NULL (valor nulo), ele é tratado diferente dos outros campos que possuem valores, pois NULL é usado como um espaço reservado para valores desconhecidos ou não determinados.

Assim, é possível inserir ou atualizar registros do DB com a designação ou não de valor para os campos que aceitam valor nulo. Quando um registro é salvo com um campo sem valor, isto significa que o campo está NULL.

E ao realizar a pesquisa em uma tabela que retorne registros que possuam valores nulos, a representação do campo que estar nulo na maior parte dos DB é feita com espaços, conforme:

PESSOA
CD_PESSOANOMEAPELIDO
1FelipeFelipeB
2Ana
3João
4AlineAlineS
5MairaMairaD

Como os campos nulos recebem um tratamento diferente dos demais campos que possuem valor, eles não podem ser testados com os operadores relacionais (<, >, =, <=, >=, <>). Para realizar uma consulta que verifique se o valor do registro a ser selecionado possui valor nulo ou não é necessário usar os operadores IS NULL ou IS NOT NULL.


  • IS NULL
O operador IS NULL é usado quando a consulta no DB tem o objetivo de selecionar os registros que possuem valor nulo. Exemplo ao executar o SQL abaixo com este operador na tabela PESSOA:

SELECT NOME
     , APELIDO
  FROM PESSOA
 WHERE APELIDO IS NULL;

Temos o seguinte resultado:

reposta_da_consulta
NOMEAPELIDO
Ana
João


  • IS NOT NULL
O operador IS NOT NULL é usado com o objetivo de selecionar registros de uma tabela que não possuam valor nulo, exemplo do SQL abaixo:

SELECT NOME
     , APELIDO
  FROM PESSOA
 WHERE APELIDO IS NOT NULL;

O resultado:

reposta_da_consulta
NOMEAPELIDO
FelipeFelipeB
AlineAlineS
MairaMairaD

Enfim, tenham atenção pois algumas interfaces/IDE utilizadas para manipular os dados dos DB, não representam o campo com valor nulo com espaço, assim caso tenha algum caractere "estranho" na resposta da sua consulta, verifique se o campo está com valor null.

Consultar a relação de Termos e Abreviaturas acesse aqui.
Felipe Barbosa Ferreira
Até o próximo post!