Null (SQL)

NULL — verilənlər bazasında bir dəyərin mövcud olmadığını və ya təyin edilmədiyini göstərən xüsusi bir dəyərdir. NULL boşluq və ya sıfır kimi qəbul edilmir; əksinə, dəyərin "bilinməz" olduğunu və ya mövcud olmadığını bildirir.[1][2]

  1. Məlumatın olmaması — NULL dəyəri bir cədvəl hüceyrəsində məlumatın olmadığını bildirir. Məsələn, istifadəçinin telefon nömrəsi yoxdursa, telefon sütununda NULL saxlana bilər.
  2. NULL = NULL deyil — SQL-də iki NULL dəyəri bir-birinə bərabər hesab edilmir. Yəni, NULL = NULL şərti doğru deyil. NULL-lar bilinməz dəyərlər olduğundan, iki bilinməz dəyərin eyni olub-olmadığını müqayisə etmək mənasızdır.
  3. NULL ilə əməliyyatlar — NULL ilə hər hansı bir riyazi və ya məntiqi əməliyyatın nəticəsi də NULL olacaq. Məsələn, 5 + NULL və ya NULL AND TRUE kimi ifadələr NULL qaytaracaq.
  4. NULL ilə şərtlər — NULL-ları axtarmaq üçün SQL-də xüsusi IS NULLIS NOT NULL ifadələrindən istifadə olunur.[3]

Məsələn:

 SELECT * FROM users WHERE phone IS NULL;
'Fish ' || NULL || 'Chips'   -- Result is NULL

Bu sorğu telefon nömrəsi olmayan istifadəçiləri qaytaracaq.[4]

5. NULL dəyərlərin funksiyalarla istifadəsi — bir çox SQL funksiyası NULL dəyərlərlə işləyəndə NULL qaytarır, lakin `COALESCE` kimi xüsusi funksiyalar NULL dəyəri başqa bir dəyərlə əvəz etmək üçün istifadə edilə bilər.[5]

Məsələn:

 SELECT COALESCE(phone, 'No phone number') FROM users;

Bu sorğu, NULL olan telefon nömrələrini "No phone number" mətnilə əvəz edəcək.[6]

SQL üç məntiqi nəticəni həyata keçirir, buna görə də SQL tətbiqləri ixtisaslaşmış üç dəyərli məntiqi (3VL) təmin etməlidir. SQL-in üç dəyərli məntiqini idarə edən qaydalar aşağıdakı cədvəllərdə göstərilmişdir (p və q məntiqi vəziyyətləri təmsil edir)." SQL-in AND, OR və NOT üçün istifadə etdiyi həqiqət cədvəlləri Klin və Lukaseviçin üç dəyərli məntiqinin ümumi fraqmentinə uyğun gəlir.[7]

p q p OR q p AND q p = q
True True True True True
True False True False False
True Bilinmir True Bilinmir Bilinmir
False True True False False
False False False False True
False Bilinmir Bilinmir False Bilinmir
Bilinmir True True Bilinmir Bilinmir
Bilinmir False Bilinmir False Bilinmir
Bilinmir Bilinmir Bilinmir Bilinmir Bilinmir
p NOT p
True False
False True
Bilinmir Bilinmir

SQL-də NULL, məlumatların olmadığını bildirir və onunla işləyərkən xüsusi qaydalar tətbiq olunur.

  1. Codd, E.F. "Is Your Database Really Relational?". Computerworld. October 14, 1985.
  2. Codd, E.F. "Does Your DBMS Run By The Rules?". Computerworld. October 21, 1985.
  3. Don Chamberlin. A Complete Guide to DB2 Universal Database. Morgan Kaufmann. 1998. 28–32. ISBN 978-1-55860-482-7.
  4. Ron van der Meyden, "Logical approaches to incomplete information: a survey" in Chomicki, Jan; Saake, Gunter (Eds.) Logics for Databases and Information Systems, Kluwer Academic Publishers ISBN 978-0-7923-8129-7, p. 344; PS preprint (note: page numbering differs in preprint from the published version)
  5. ISO/IEC. ISO/IEC 9075-2:2003, "SQL/Foundation". ISO/IEC. 2003. Section 6.2.6: numeric value expressions..
  6. ISO/IEC. ISO/IEC 9075-2:2003, "SQL/Foundation". ISO/IEC. 2003. Section 6.2.8: string value expression.
  7. Hans-Joachim, K. Null Values in Relational Databases and Sure Information Answers // Semantics in Databases. Second International Workshop Dagstuhl Castle, Germany, January 7–12, 2001. Revised Papers. Lecture Notes in Computer Science. 2582. 2003. 119–138. doi:10.1007/3-540-36596-6_7. ISBN 978-3-540-00957-3.