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]
- 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.
- 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. - 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ə yaNULL AND TRUE
kimi ifadələr NULL qaytaracaq. - NULL ilə şərtlər — NULL-ları axtarmaq üçün SQL-də xüsusi
IS NULL
vəIS 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.
- ↑ Codd, E.F. "Is Your Database Really Relational?". Computerworld. October 14, 1985.
- ↑ Codd, E.F. "Does Your DBMS Run By The Rules?". Computerworld. October 21, 1985.
- ↑ Don Chamberlin. A Complete Guide to DB2 Universal Database. Morgan Kaufmann. 1998. 28–32. ISBN 978-1-55860-482-7.
- ↑ 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 Arxiv surəti 14 aprel 2021 tarixindən Wayback Machine saytında (note: page numbering differs in preprint from the published version)
- ↑ ISO/IEC. ISO/IEC 9075-2:2003, "SQL/Foundation". ISO/IEC. 2003. Section 6.2.6: numeric value expressions..
- ↑ ISO/IEC. ISO/IEC 9075-2:2003, "SQL/Foundation". ISO/IEC. 2003. Section 6.2.8: string value expression.
- ↑ 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.[ölü keçid]