NULL ou NOT NULL

Delphi

23/06/2004

Quando e quais tipo de campo deve ser NULL e quando deve ser NOT NULL.


Não Achei no forum esta resposta.

J.R.P.J.


Uoquisala

Uoquisala

Curtidas 0

Respostas

Macario

Macario

23/06/2004

Ola programador.


[color=green:916f98fd38] Select * from Nome_tabela where campo1 is Null[/color:916f98fd38]


Aqui sera retornado apenas registros onde o [b:916f98fd38]Campo1[/b:916f98fd38] esteja vazio
independente do tipo do campo (char,varchar,datetime,integer,etc)

[color=red:916f98fd38] Select * from Nome_tabela where campo1 is Not Null[/color:916f98fd38]


ja neste caso sera retornado apenas registros onde o [b:916f98fd38]Campo1[/b:916f98fd38] não esteja vazio independente do tipo do campo (char,varchar,datetime,integer,etc)

espero ter ajudado.

Se houver mais duvidas, estamos sempre aqui.


GOSTEI 0
Vinicius2k

Vinicius2k

23/06/2004

Colega,

PKs (chaves primárias) e PFKs (chaves estrangeiras que fazem parte da chave primária) obrigatoriamente devem ser NOT NULL.
FKs (chaves estrangeiras) normalmente são NOT NULL a não ser que na regra de integridade referencial o delete na tabela pai acione SET NULL para o campo na tabela filha, neste caso a FK não pode ser NOT NULL.

Para os demais essa é uma decisão exclusivamente sua... os campos que vc julgar estritamente necessários o preenchimento para o correto funcionamento da sua aplicação vc pode dar-lhe o atributo NOT NULL...

Isso quer dizer que em hipótese alguma o SGBD vai inserir ou dar update em um registro se um campo designado para NOT NUL não contiver um valor...

Na prática, a maior parte dos colegas, inclusive eu, controlam isso através da própria aplicação, obrigando o preenchimento de TEdits, mas algo pode passar desapercebido e fazer esta trava dentro do banco de dados ajuda para que, mesmo que vc erre em alguma rotina de insert ou update, o registro não possa ser gravado, mantendo assim sua integridade lógica...

Espero ter ajudado...
T+


GOSTEI 0
POSTAR