NULL qiymatlari haqida nima bilishingiz kerak

Ma'lumotlar bazasi muammolarini oldini olish uchun NULLlardan foydalanishni tushunish

Ma'lumotlar bazalari dunyosiga yangi foydalanuvchilar odatda maydonga xos bo'lgan maxsus qiymat - NULL qiymati bilan aralashtiriladi. Ushbu qiymat har qanday turdagi ma'lumotni o'z ichiga olgan sohada topilishi mumkin va u bilan bog'liq ma'lumotlar bazasi doirasida juda muhim ma'noga ega. Ehtimol, biz NULL bilan suhbatni boshlashimiz eng yaxshisi, NULL nima emasligi haqida bir necha so'z bilan:

Aksincha, NULL noma'lum ma'lumotni ifodalash uchun foydalaniladigan qiymat hisoblanadi. Ko'pincha ma'lumotlar bazasi dasturchilari "NULL qiymat" iborasini ishlatadi, ammo bu noto'g'ri. Eslab qoling: NULL - maydon bo'sh ko'rinadigan noma'lum qiymat.

Haqiqiy dunyoda NULL

Keling, oddiy misolni ko'rib chiqaylik: mevali stend uchun inventarni o'z ichiga olgan stol. Bizning inventarizamizda 10 ta olma va uch portsiyadan iborat. Biz shuningdek, zaytun mevasini ekmoqdamiz, lekin bizning inventarizatsiyamiz ma'lumoti to'liq emas va bizda (agar mavjud bo'lsa) o'riklarning soni borligini bilmaymiz. NULL qiymatidan foydalanib, biz quyidagi jadvalda ko'rsatilgan inventar jadvaliga egamiz.

Fruit Stand inventarizatsiyadan

InventoryID Mavzu Miqdor
1 Olmalar 10
2 Portakollar 3
3 Eriklar NULL


Ko'katlar uchun 0 miqdorini kiritish to'g'ri emas , chunki bu bizda inventarizatsiyamizda o'rik yo'qligini bildiradi. Aksincha, bizda ba'zi o'riklar bo'lishi mumkin, lekin biz ishonmaymiz.

NULL yoki NOT NULL uchun?

Jadval NULL qiymatlariga ruxsat berish uchun mo'ljallangan bo'lishi mumkin.

Bu erda ba'zi bir NULL-larga ruxsat beruvchi inventar jadvalini yaratadigan SQL misoli:

SQL> CREATE TABLE INVENTORY (InventoryID INT NOT NULL, Item VARCHAR (20) NOT NULL, Miqdor INT);

Bu erda inventarizatsiya jadvali InventoryID va Item sütunları uchun NULL qadriyatlarga ruxsat bermaydi, lekin ular miqdori ustuniga ruxsat beradi.

NULL qiymati juda yaxshi bo'lsa, NULL qiymatlari muammolarga olib kelishi mumkin, chunki NULL qiymatlari har qanday taqqoslash har doim NULLga olib keladi.

Jadvalning NULL qiymatlari mavjudligini tekshirish uchun IS NULL yoki IS NOT NULL operatoridan foydalaning. Bu IS NULLning namunasi:

SQL> INVENTORYID, ITEM, INVENTORYdan MUVOFIQ QANDAY KO'ZDA NULL QILINADI;

Bizning namunamizni bu erda ko'rib chiqamiz:

InventoryID Mavzu Miqdor
3 Eriklar

NULLlarda ishlash

NULL qiymatlari bilan ishlash odatda SQL operatsiyasiga qarab NULL natijalarini beradi. Misol uchun, A ning NULL ekanligini taxmin qilamiz:

Aritmetik operatorlar

Taqqoslash operatorlari

Bu operatorlar bir nechta NULL bo'lsa, ular har doim NULLni qaytaradigan operatorlarning ayrim misollari. Juda murakkab so'rovlar mavjud va ularning barchasi NULL qiymatlari bilan murakkablashadi. Uyga olish nuqtasi, agar siz ma'lumotlar bazasida NULL qiymatlariga ruxsat berilsa, ularning oqibatlarini tushunib, ularni rejalashtirishingiz kerak.

Bu qisqagina NULL !