SQLite - Valori NULL
SQLite NULLè il termine usato per rappresentare un valore mancante. Un valore NULL in una tabella è un valore in un campo che sembra essere vuoto.
Un campo con un valore NULL è un campo senza valore. È molto importante comprendere che un valore NULL è diverso da un valore zero o da un campo che contiene spazi.
Sintassi
Di seguito è riportata la sintassi di base dell'utilizzo di NULL durante la creazione di una tabella.
SQLite> CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
Qui, NOT NULLsignifica che la colonna deve sempre accettare un valore esplicito del tipo di dati specificato. Ci sono due colonne in cui non abbiamo usato NOT NULL, il che significa che queste colonne potrebbero essere NULL.
Un campo con un valore NULL è uno che è stato lasciato vuoto durante la creazione del record.
Esempio
Il valore NULL può causare problemi durante la selezione dei dati, perché quando si confronta un valore sconosciuto con qualsiasi altro valore, il risultato è sempre sconosciuto e non è incluso nei risultati finali. Considera la seguente tabella, AZIENDA con i seguenti record:
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
Usiamo l'istruzione UPDATE per impostare alcuni valori nullable come NULL come segue:
sqlite> UPDATE COMPANY SET ADDRESS = NULL, SALARY = NULL where ID IN(6,7);
Ora, la tabella AZIENDA avrà i seguenti record.
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
Successivamente, vediamo l'utilizzo di IS NOT NULL operatore per elencare tutti i record in cui SALARY non è NULL.
sqlite> SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM COMPANY
WHERE SALARY IS NOT NULL;
L'istruzione SQLite sopra produrrà il seguente risultato:
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
Di seguito è riportato l'utilizzo di IS NULL operatore, che elencherà tutti i record in cui SALARY è NULL.
sqlite> SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM COMPANY
WHERE SALARY IS NULL;
L'istruzione SQLite precedente produrrà il seguente risultato.
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
6 Kim 22
7 James 24