SQLite - valores NULL
SQLite NULLé o termo usado para representar um valor ausente. Um valor NULL em uma tabela é um valor em um campo que parece estar em branco.
Um campo com valor NULL é um campo sem valor. É muito importante entender que um valor NULL é diferente de um valor zero ou de um campo que contém espaços.
Sintaxe
A seguir está a sintaxe básica de uso NULL ao criar uma mesa.
SQLite> CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
Aqui, NOT NULLsignifica que a coluna deve sempre aceitar um valor explícito do tipo de dados fornecido. Existem duas colunas onde não usamos NOT NULL, o que significa que essas colunas podem ser NULL.
Um campo com valor NULL é aquele que foi deixado em branco durante a criação do registro.
Exemplo
O valor NULL pode causar problemas na seleção dos dados, pois ao comparar um valor desconhecido com qualquer outro valor, o resultado é sempre desconhecido e não é incluído no resultado final. Considere a tabela a seguir, EMPRESA com os seguintes registros -
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
Vamos usar a instrução UPDATE para definir alguns valores anuláveis como NULL da seguinte maneira -
sqlite> UPDATE COMPANY SET ADDRESS = NULL, SALARY = NULL where ID IN(6,7);
Agora, a tabela COMPANY terá os seguintes registros.
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22
7 James 24
A seguir, vamos ver o uso de IS NOT NULL operador para listar todos os registros onde SALARY não é NULL.
sqlite> SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM COMPANY
WHERE SALARY IS NOT NULL;
A instrução SQLite acima produzirá o seguinte resultado -
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
A seguir está o uso de IS NULL operador, que listará todos os registros onde SALARY é NULL.
sqlite> SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM COMPANY
WHERE SALARY IS NULL;
A instrução SQLite acima produzirá o seguinte resultado.
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
6 Kim 22
7 James 24