چیزی که باید درباره ارزشهای NULL بدانید

درک استفاده از NULL برای جلوگیری از مشکلات پایگاه داده

کاربران جدید به دنیای پایگاه های داده اغلب با ارزش ویژه ای خاص به میدان اشتباه می گیرند - ارزش NULL. این مقدار را می توان در فیلد حاوی هر نوع داده یافت و معنای بسیار خاصی را در بستر یک پایگاه داده رابطه ای یافت. احتمالا بهتر است بحث ما درباره NULL را با چند کلمه درباره NULL آغاز کنیم:

در عوض NULL مقداري است که براي نشان دادن قطعه ناشناخته داده استفاده مي شود. اغلب برنامهنویسان پایگاه داده از عبارت "ارزش NULL" استفاده می کنند، اما این نادرست است. به یاد داشته باشید: NULL یک مقدار ناشناخته است که در آن فیلد خالی است.

NULL در جهان واقعی

بیایید یک نمونه ساده را ببینیم: یک جدول حاوی موجودی برای یک میز میوه. فرض کنید که موجودی ما شامل 10 سیب و سه پرتقال است. ما همچنین آلو را سهام می دهیم، اما اطلاعات موجودی ما ناقص است و ما نمی دانیم که چند نفر (در صورت وجود) آلو در انبار موجود هستند. با استفاده از مقدار NULL، جدول موجودی در جدول زیر نشان داده می شود.

فهرست موجودی میوه

InventoryID مورد مقدار
1 سیب 10
2 پرتقال ها 3
3 آلو خالی


به وضوح نادرست است که مقدار 0 را برای رکورد آلو ثبت کنید زیرا این بدان معنی است که ما موجودی موجودی آلو را نداریم . برعکس، ممکن است برخی از آلوها داشته باشند، اما ما مطمئن نیستیم.

به NULL یا NOT NULL؟

جدول می تواند طراحی شود که یا می تواند مقادیر NULL را تعیین کند یا نه.

در اینجا یک مثال SQL است که جدول موجودی را ایجاد می کند که به برخی از NULL ها اجازه می دهد:

SQL> CREATE TABLE INVENTORY (InventoryID INT NOT NULL، Item VARCHAR (20) NOT NULL، INT INT)؛

جدول Inventory در اینجا مقدار NULL برای مقادیر InventoryID و Item را اجازه نمی دهد، بلکه اجازه می دهد که آنها برای ستون Quantity باشد.

در حالی که اجازه می دهد مقدار NULL کاملا خوب است، مقادیر NULL می تواند مشکلات را ایجاد کند، زیرا هر مقایسه مقادیری که در آن یک NULL است همیشه NULL است.

برای بررسی اینکه آیا جدول شما حاوی مقادیر NULL است، از IS NULL استفاده کنید یا نه اپراتور NULL است. در اینجا یک مثال از IS NULL است:

SQL> SELECT INVENTORYID، ITEM، QUANTITY FROM INVENTORY WHERE QUANTITY IS NOT NULL؛

با توجه به مثال ما در اینجا، این بازگشت می یابد:

InventoryID مورد مقدار
3 آلو

عملیات در NULLs

کار با مقادیر NULL اغلب نتایج NULL را بسته به عملیات SQL انجام می دهد . به عنوان مثال، فرض بر این است که A NULL است:

اپراتورهای ریاضی

اپراتورهای مقایسه

اینها فقط نمونه هایی از اپراتورها هستند که همیشه NULL را اگر یک عملگر NULL باشد، باز می شود. پرس و جو های پیچیده تر وجود دارد، و همه با ارزش NULL پیچیده است. نقطه شروع این است که، اگر شما اجازه می دهید ارزش NULL در پایگاه داده خود، مفاهیم را درک کنید و آنها را برنامه ریزی کنید.

این NULL به طور خلاصه است!