você está aqui: Home  → Colunistas  →  Bancos de Dados Livres

NULL ou não NULL, eis a questão!

Por Luiz Paulo de Oliveira Santos

Data de Publicação: 26 de Setembro de 2006

Esse assunto é muito polêmico, principalmente porque ele é uma excessão à regra. Mas de qualquer forma, vamos ao que interessa.

NULL ao contrário do que muita gente pensa, não é um conteúdo, mas sim um estado que o campo (ou variável em algumas linguagens) se encontra. O fato dele estar NULL indica que não possui conteúdo de nenhuma espécie.

Excepcionalmente algumas linguagens de programação permitem comparar NULL com dois apóstrofes ou duas aspas (para campos alfanuméricos) ou com zero (em caso de campos numéricos) pois a própria linguagem ao receber NULL trata as comparações. Mas bancos de dados não tratam valores para o NULL.

Uma vez que NULL não é conteúdo e sim estado, não podemos fazer calculos nem concatenações com campos vazios, para isso devemos testar se o campo é NULL, e caso seja, devemos retornar um valor real, por exemplo:

A função COALESCE( <campo a testar>, <valor padrão a retornar> ), observe a seguir:

SELECT NOME, COALESCE( SALBRUTO, 0 ) * 1.10 FROM PESSOAS

No caso acima utilizamos a funcão COALESCE que retorna o valor 0 (zero) caso o campo SALBRUTO esteja NULL, caso SALBRUTO não esteja NULL retorna o próprio SALBRUTO.

Mas COALESCE não é a unica função que trata o NULL. Alias temos uma que pode nos devolver NULL. O nome da função é NULLIF que compara dois conteúdos e se forem iguais devolve NULL, caso sejam diferentes retornam o primeiro valor, por exemplo:

SELECT NULLIF( SALBRUTO, SALLIQUIDO )

Após verificarmos como substituir e como conseguir um NULL, podemos deduzir que o NULL também importante para algumas situações, como por exemplo uma base de dados onde será armazenada a nota de alunos. Caso um aluno que tenha faltado a uma prova, não devemos atribuir nota zero para o aluno porque ele não fez a prova, ou seja, não existe a nota, e é diferente do zero que algum outro aluno possa ter tirado.

Então o NULL é uma realidade, uma possibilidade que deve ser tratada, porque há situações que necessitamos utilizar o NULL.

Um forte abraço e até a próxima.

Sobre o autor

Luiz Paulo de Oliveira Santos teve seu primeiro contato com computadores em 1984, estudou BASIC para equipamentos de 8 bits (ZX-81 e Apple 2), em 1985 com o ambiente de 16 bits, e em 1988 com o ambiente de 32 bits. Em 1993 foi um dos primeiros Brasileiros a ter contato com o VBK que em 1995 se tornou o Delphi. Graduou em Tecnologia Em Processamento de Dados, cursou especialização em Análise de Sistemas e atualmente é graduando em Ciências Jurídicas. Atua como analista de suporte de redes da Universidade Metodista de Piracicaba, é editor da revista DB Freemagazine (uma revista gratuíta focada exclusivamente para bancos de dados Cliente/Servidor) e professor nas Faculdades Integradas Einstein de Limeira no curso de Tecnologia em Sistemas de Informação. Tem experiência nas áreas: Sistemas de Computação, Redes e Teleprocessamento de Dados, Bancos de Dados cliente-servidor e SQL. É autor do livro Firebird - Dicas de Segurança, publicado pela Editora Ciência Moderna.

Recomende este artigo nas redes sociais

 

 

Veja a relação completa dos artigos desta coluna