English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PostgreSQL NULL值

I valori NULL rappresentano dati sconosciuti o mancanti.

Di solito, le colonne delle tabelle possono contenere valori NULL.

Questo capitolo spiega gli operatori IS NULL e IS NOT NULL.

Sintassi

Quando si crea una tabella, la sintassi di base per NULL è la seguente:

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

Qui, NOT NULL significa che il campo è obbligatorio e deve sempre contenere un valore. Questo significa che non è possibile inserire un nuovo record o aggiornare un record senza aggiungere un valore al campo.

Il campo con valore NULL indica che è possibile lasciare vuoto durante la creazione del record.

Durante la query dei dati, i valori NULL possono causare alcuni problemi, poiché un valore sconosciuto viene confrontato con qualsiasi altro valore, il risultato è sempre sconosciuto.

Inoltre, non è possibile confrontare NULL e 0, poiché non sono equivalenti.

Esempio online

Esempio online

Crea il tavolo COMPANY (Scarica il file SQL di COMPANY ),i dati contenuti sono come segue:

w3codeboxdb# select * from COMPANY;
 id | name | age | address | salary
----+-------+-----+-----------+--------
  1 | Paul | 32 | California | 20000
  2 | Allen | 25 | Texas | 15000
  3 | Teddy | 23 | Norway | 20000
  4 | Mark | 25 | Rich-Mond | 65000
  5 | David | 27 | Texas | 85000
  6 | Kim | 22 | South-Hall | 45000
  7 | James | 24 | Houston | 10000
(7 righe)

Successivamente, utilizziamo l'istruzione UPDATE per impostare alcuni campi che possono essere impostati su NULL:

w3codeboxdb=# UPDATE COMPANY SET ADDRESS = NULL, SALARY = NULL where ID IN(6,7);

Ora il tavolo COMPANY ha questo aspetto::

w3codeboxdb=# select * from company;
 id | name | age | address | salary 
----+-------+-----+---------------------+--------
  1 | Paul | 32 | California | 20000
  2 | Allen | 25 | Texas | 15000
  3 | Teddy | 23 | Norway | 20000
  4 | Mark | 25 | Rich-Mond | 65000
  5 | David | 27 | Texas                                                                  | 85000
  6 | Kim      | 22 |                                                                          |       
  7 | James | 24 |                                                                          |       
(7 righe)

IS NOT NULL

Ora, utilizziamo l'operatore IS NOT NULL per elencare tutte le registrazioni con il valore SALARY (salario) non vuoto:

w3codeboxdb=# SELECT ID, NAME, AGE, ADDRESS, SALARY FROM COMPANY WHERE SALARY IS NOT NULL;

Ecco i risultati ottenuti:

 id | name      | age | address                                                          | salary
----+-------+-----+------------+--------
  1 | Paul      | 32 | California                                                          | 20000
  2 | Allen      | 25 | Texas                                                          | 15000
  3 | Teddy      | 23 | Norway                                                          | 20000
  4 | Mark      | 25 | Rich-Mond                                                          | 65000
  5 | David | 27 | Texas                                                                  | 85000
(5 righe)

IS NULL

IS NULL viene utilizzato per cercare campi con valori NULL.

Di seguito è riportato l'uso dell'operatore IS NULL, che elenca le registrazioni con il valore SALARY (salario) vuoto:

w3codeboxdb=# SELECT ID, NAME, AGE, ADDRESS, SALARY FROM COMPANY WHERE SALARY IS NULL;

Ecco i risultati ottenuti:

id | name      | age | address                                                          | salary
----+-------+-----+---------+--------
  6 | Kim      | 22 |                                                                      
  7 | James | 24 |                                                                          
(2 righe)