22 / 100

IS NULL

NULL qiymatni tekshirish

Kirish: ushbu darsda siz qiymatning NULL ekanini aniqlash uchun PostgreSQL IS NULL operatorini qanday ishlatishni o'rganasiz.


PostgreSQL IS NULL operatoriga kirish

PostgreSQL da NULL — noma'lum ma'lumotni bildiruvchi belgi. Qiymatning NULL ekanini tekshirish uchun uni teng belgi yordamida NULL bilan taqqoslab bo'lmaydi. NULL noma'lum bo'lgani uchun, qiymatni noma'lum qiymat bilan taqqoslash natijasi ham noma'lum qiymat (yoki NULL) bo'ladi. Masalan:

query.sql
SELECT
  10 = NULL AS result;

Natija:

kod
result
--------
 NULL

Bu misolda biz 10 sonini teng belgi yordamida NULL bilan taqqoslayapmiz. Taqqoslash NULL qaytaradi.

Qiymatni NULL bilan taqqoslash uchun IS NULL operatoridan foydalaning:

query.sql
value IS NULL

IS NULL operatori qiymatni NULL bilan taqqoslaydi va agar qiymat NULL bo'lsa true, aks holda false qaytaradi. Masalan:

query.sql
SELECT
  NULL IS NULL null_vs_null,
  10 IS NULL null_vs_10;

Natija:

null_vs_nullnull_vs_10
truefalse

IS NULL operatori natijasini inkor qilish uchun IS NOT NULL operatoridan foydalaning:

query.sql
value IS NOT NULL

IS NOT NULL operatori qiymatni NULL bilan taqqoslaydi va agar qiymat null bo'lmasa true, aks holda false qaytaradi.

Ustunda NULL bo'lmasligi uchun NOT NULL cheklovidan foydalaniladi. Agar IS NULL operatori o'rniga funksiyalar yordamida NULL larni boshqarmoqchi bo'lsangiz, NULLIF, ISNULL va COALESCE funksiyalaridan foydalanishingiz mumkin.


PostgreSQL IS NULL operatori namunasi

IS NULL operatorini ko'rsatish uchun profiles jadvalidan foydalanamiz.

Quyidagi SELECT ifodasi ish telefoni bo'lmagan foydalanuvchilarni olish uchun IS NULL operatoridan foydalanadi:

query.sql
SELECT
  first_name,
  last_name,
  work_phone
FROM
  profiles
WHERE
  work_phone IS NULL;

Natija:

kod
first_name | last_name | work_phone
-----------+-----------+------------
 Alice     | Jones     | NULL
 Bob       | Brown     | NULL
 Charlie   | Davis     | NULL

So'rov work_phone ustunidagi qiymatlari NULL bo'lgan xodimlarni qaytaradi.


PostgreSQL IS NOT NULL namunasi

Quyidagi so'rov ish telefoni mavjud xodimlarni olish uchun IS NOT NULL operatoridan foydalanadi:

query.sql
SELECT
  first_name,
  last_name,
  work_phone
FROM
  profiles
WHERE
  work_phone IS NOT NULL;

Natija:

kod
first_name | last_name | work_phone
-----------+-----------+--------------
 John      | Doe       | 408-456-7890
 Jane      | Smith     | 408-456-7891

psql va NULL

psql — buyruq qatori interfeysi yordamida PostgreSQL Server bilan ishlash uchun mo'ljallangan mijoz dastur. psql dasturi NULL uchun standart holda bo'sh joy ko'rsatadi. NULL ni ifodalash uchun NULL literal satrini ishlatish maqsadida quyidagi buyruqdan foydalaning:

query.sql
\pset null NULL

Xulosa

  • IS NULL operatori qiymatni NULL bilan taqqoslaydi va agar qiymat NULL bo'lsa true, aks holda false qaytaradi.
  • IS NOT NULL operatori qiymatni NULL bilan tekshiradi va agar qiymat NULL bo'lmasa true, aks holda false qaytaradi.
QBilimingizni sinab ko'ring
1 / 4

1. Nima uchun 10 = NULL ifodasi NULL qaytaradi?