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

دليل PostgreSQL الأساسي

دليل PostgreSQL المتقدم

واجهة PostgreSQL

قيمة NULL PostgreSQL

قيم NULL تمثل بيانات غير معروفة مفقودة.

في معظم الحالات، يمكن أن تحتوي أعمدة الجدول على قيم NULL.

في هذا الفصل، يتم شرح عمليات IS NULL وIS NOT NULL.

النحو

عند إنشاء الجدول، النحو الأساسي لـ NULL هو كالتالي:

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

في هذا السياق، NOT NULL يعني أن الحقل الإلزامي يجب أن يحتوي دائمًا على قيمة. هذا يعني أنه إذا لم يتم إضافة قيمة إلى الحقل، فإنه لا يمكن إدراج سجل جديد أو تحديث سجل.

حقل NULL يمثل أنه يمكن تركه فارغ أثناء إنشاء السجلات.

عند استعلام البيانات، قد تسبب القيم NULL بعض المشاكل لأن قيمة غير معروفة تذهب للتحقق من أي قيمة أخرى، والنتيجة دائمًا غير معروفة.

لا يمكن مقارنة NULL و 0 لأنها غير متساوية.

مثال عبر الإنترنت

مثال عبر الإنترنت

إنشاء جدول COMPANY (تثبيت ملف SQL لجداول COMPANY ),المحتوى البياني كالتالي:

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 rows)

الآن سنستخدم جملة UPDATE لجعل بعض الحقول القابلة لتعيين القيم NULL:

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

الآن جدول COMPANY بهذه الشكل:

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 rows)

IS NOT NULL

现在,我们用 IS NOT NULL 操作符把所有 SALARY(薪资) 值不为空的记录列出来:

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

得到结果如下:

 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)

IS NULL

IS NULL 用来查找为 NULL 值的字段。

下面是 IS NULL 操作符的用法,列出 SALARY(薪资) 值为空的记录:

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

得到结果如下:

id | name  | age | address | salary
----+-------+-----+---------+--------
  6 | Kim   |  22 |         |
  7 | James |  24 |         |
(2 أسطر)