PostgreSQL - Valeurs NULL
Le PostgreSQL NULLest le terme utilisé pour représenter une valeur manquante. Une valeur NULL dans une table est une valeur dans un champ qui semble vide.
Un champ avec une valeur NULL est un champ sans valeur. Il est très important de comprendre qu'une valeur NULL est différente d'une valeur zéro ou d'un champ qui contient des espaces.
Syntaxe
La syntaxe de base de l'utilisation NULL lors de la création d'une table est la suivante -
CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
Ici, NOT NULLsignifie que la colonne doit toujours accepter une valeur explicite du type de données donné. Il y a deux colonnes où nous n'avons pas utilisé NOT NULL. Par conséquent, cela signifie que ces colonnes peuvent être NULL.
Un champ avec une valeur NULL est celui qui a été laissé vide lors de la création de l'enregistrement.
Exemple
La valeur NULL peut poser des problèmes lors de la sélection de données, car lors de la comparaison d'une valeur inconnue à une autre valeur, le résultat est toujours inconnu et n'est pas inclus dans les résultats finaux. Considérez le tableau suivant, COMPANY ayant les enregistrements suivants -
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
Utilisons l'instruction UPDATE pour définir quelques valeurs NULL comme NULL comme suit -
testdb=# UPDATE COMPANY SET ADDRESS = NULL, SALARY = NULL where ID IN(6,7);
Maintenant, la table COMPANY doit avoir les enregistrements suivants -
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 rows)
Ensuite, voyons l'utilisation de IS NOT NULL opérateur pour lister tous les enregistrements où SALARY n'est pas NULL -
testdb=# SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM COMPANY
WHERE SALARY IS NOT NULL;
L'instruction PostgreSQL donnée ci-dessus produira le résultat suivant -
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 rows)
Ce qui suit est l'utilisation de IS NULL opérateur qui listera tous les enregistrements où SALARY est NULL -
testdb=# SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM COMPANY
WHERE SALARY IS NULL;
L'instruction PostgreSQL donnée ci-dessus produira le résultat suivant -
id | name | age | address | salary
----+-------+-----+---------+--------
6 | Kim | 22 | |
7 | James | 24 | |
(2 rows)