Busca

Visite também: UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 



 

Aprenda inglês em casa

Baixe gratuitamente as duas primeiras aulas

English for Reading and Listening

Receba por email, diariamente, mensagens contendo materiais para leitura e audição, incluindo arquivos no formato MP3 gravados por falantes nativos.

Saiba mais e faça sua inscrição

Red Bug

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.

Recomende este site
Recomendar este artigo

Opinião dos Leitores

Gustavo Serra
27 Jul 2008, 18:31
Muito bom, direto e claro!!
Marcos Plumari
28 Jan 2007, 15:25
Boa tarde, gostei e achei ebm direto a explicacao sobre o NULL, porem tenho um problema , porque q o meu IBEXPERT + FIREBIRD 1.5 diz q nao reconhece, que sao invalidas as funcoes nullif e coalesce ?

[ ] 's
*Nome:
Email:
Me notifique sobre novos comentários nessa pagina
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script

Artigos Publicados


Para se manter atualizado sobre as novidades desta coluna, consulte sempre o newsfeed RSS

Desenvolverde RSS

Para saber mais sobre RSS, leia o artigo O Padrão RSS - A luz no fim do túnel.