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.
Haqqında
- 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.
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.
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.
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.
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.
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.
İstinadlar
- Codd, E.F. "Is Your Database Really Relational?". . October 14, 1985.
- Codd, E.F. "Does Your DBMS Run By The Rules?". . October 21, 1985.
- Don Chamberlin. . Morgan Kaufmann. 1998. 28–32. ISBN 978-1-55860-482-7.
- Ron van der Meyden, "" in Chomicki, Jan; Saake, Gunter (Eds.) Logics for Databases and Information Systems, Kluwer Academic Publishers ISBN 978-0-7923-8129-7, p. 344; (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. // 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:. ISBN 978-3-540-00957-3.