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