Artıq ədədləri və mətnləri saxlayan verilənlər tipləri ilə tanış olmusan. İndi isə gəlin məntiqi verilənlər tipi — BOOLEAN haqqında danışaq. Bu, bəlkə də ən "dürüst" verilənlər tipidir, çünki o, sadəcə iki suala cavab verir: "Bəli" və ya "Xeyr". Bəzən də — "Bəlkə" (oxu: NULL).
Məntiqi verilənlər tipi BOOLEAN yalnız bu dəyərləri saxlaya bilər:
TRUE(doğru);FALSE(yanlış);NULL(dəyər yoxdur).
Təsəvvür elə bir açar var: o, TRUE (yandırılıb), FALSE (söndürülüb) və ya NULL (əgər lampanı birdən kimsə yoxa çıxarıbsa) ola bilər.
Rahatlıqla deyə bilərik ki, məntiqi verilənlər tipi SQL-də qərarvermə və şərti məntiqin əsasını təşkil edir. Onsuz normal filter yazmaq və ya nəyinsə statusunu göstərmək mümkün olmazdı.
İstifadə nümunələri
Məntiqi verilənlər tipi verilənlər bazalarında geniş istifadə olunur. Budur bir neçə real case:
Flag-lar və statuslar.
Məsələn, is_active sahəsi istifadəçinin aktiv olub-olmadığını (TRUE) və ya olmadığını (FALSE) göstərə bilər.
SELECT username, is_active
FROM users
WHERE is_active = TRUE;
İcra nəzarəti.
Məsələn, is_complete sahəsi tapşırığın tamamlanıb-tamamlanmadığını saxlaya bilər.
SELECT task_name
FROM tasks
WHERE is_complete = FALSE;
Əlçatanlığın yoxlanması.
is_available sahəsi məhsulun anbarda olub-olmadığını göstərə bilər.
PostgreSQL-də BOOLEAN necə istifadə olunur?
PostgreSQL-də məntiqi verilənlər tipi sadəcə BOOLEAN adlanır. Gəlin bir cədvəl yaradaq və ora bir neçə sütun əlavə edək:
- Tapşırığın unikal identifikatoru
- Tapşırığın adı
- Tapşırığın tamamlanma məntiqi statusu
Sonra isə cədvələ bir neçə qeyd əlavə edək:
| task_id | task_name - VARCHAR(255) | is_complete - BOOLEAN |
|---|---|---|
| 1 | Hesabat yazmaq | false |
| 2 | Mağazaya getmək | true |
| 3 | Kitab oxumaq | null |
Veriləri çıxarmaq
İndi isə baxaq, məntiqi dəyərə əsaslanaraq veriləri necə çıxarmaq olar. Məsələn, yalnız tamamlanmamış tapşırıqları almaq üçün belə yazırıq:
SELECT task_name
FROM tasks
WHERE is_complete = FALSE;
Bu sorğu yalnız is_complete FALSE olan tapşırıqları qaytaracaq.
Nəticə:
| task_name |
|---|
| Hesabat yazmaq |
BOOLEAN ilə işləməyin xüsusiyyətləri
Dəyərlərin filtrasiya olunması
Məntiqi verilənlər tipi ilə işləmək üçün bu sintaksisdən istifadə edə bilərsən:
= TRUE— əgər açıq şəkildə dəyərin doğru olduğunu göstərmək istəyirsənsə.= FALSE— əgər yanlış dəyərləri seçmək istəyirsənsə.IS NULL— əgər dəyəri olmayan qeydləri seçmək istəyirsənsə.
Nümunə:
SELECT task_name
FROM tasks
WHERE is_complete IS NULL;
Şərtlərin sadələşdirilməsi
PostgreSQL o qədər "ağıllıdır" ki, çox vaxt açıq şəkildə = TRUE yazmağa ehtiyac yoxdur. Məsələn:
SELECT task_name
FROM tasks
WHERE is_complete;
Bu sorğu WHERE is_complete = TRUE ilə eynidir.
BOOLEAN ilə işləyərkən tipik səhvlər
Yeni verilənlər tipi ilə işləməyə başlayanda səhvlər qaçılmazdır. Budur bir neçə tipik problem:
NULL ilə müqayisə. Yeni başlayanlar tez-tez is_active = NULL yazırlar. Amma NULL ilə = istifadə etmək olmaz. Dəyərin NULL olub-olmadığını yoxlamaq üçün IS NULL və ya IS NOT NULL istifadə et.
= TRUE açıq göstərilməsi. Bəzən proqramçılar artıq konstruksiyalar əlavə edirlər, məsələn WHERE is_active = TRUE. Bu səhv deyil, amma yazını sadələşdirmək olar: sadəcə WHERE is_active yazmaq kifayətdir.
Sətirlərin səhv istifadəsi. Məntiqi verilənlər tipi ciddi tipli olur. is_active = 'TRUE' və ya is_active = 'FALSE' kimi yazmaq olmaz. Birbaşa TRUE, FALSE və ya NULL dəyərlərindən istifadə et.
Bunun nə faydası var?
Bəlkə də düşünürsən: niyə həyatı çətinləşdiririk, bu BOOLEAN-u əlavə edirik? Niyə sadəcə ədədlərdən istifadə etmirik, məsələn 1 — doğru, 0 — yanlış?
Cavab sadədir: BOOLEAN kodunu və verilənlərini daha aydın və oxunaqlı edir. Kimsə is_active sahəsi olan cədvələ baxanda dərhal başa düşür ki, bu sahə məntiqi məna daşıyır (bəli/xeyr). Bu, verilənlər bazasının sxemini oxumağı asanlaşdırır və modelini digər proqramçılar üçün daha başadüşülən edir.
GO TO FULL VERSION