مقادیر NULL در SQL
مفهوم NULL در SQL، تفاوت آن با صفر و رشته خالی، و نحوه فیلتر کردن با IS NULL و IS NOT NULL.
NULL چیست؟
NULL در SQL به معنای «هیچ مقدار» یا «نامشخص» است. این مقدار با 0 یا رشته خالی '' متفاوت است.
| مقدار | معنی |
|---|---|
NULL | مقدار وجود ندارد / نامشخص است |
0 | عدد صفر — یک مقدار مشخص |
'' | رشته خالی — یک مقدار مشخص |
بررسی NULL با IS NULL
نمیتوانید با = NULL مقادیر NULL را پیدا کنید! باید از IS NULL استفاده کنید:
-- اشتباه!
SELECT * FROM students WHERE age = NULL;
-- درست
SELECT * FROM students WHERE age IS NULL;
بررسی NOT NULL با IS NOT NULL
SELECT * FROM students WHERE age IS NOT NULL;
این کوئری فقط رکوردهایی را برمیگرداند که ستون age آنها مقدار دارد.
چرا NULL مهم است؟
- اگر کاربر فیلدی را پر نکرده باشد، مقدار NULL ذخیره میشود
- در محاسبات، NULL میتواند مشکلساز شود
- باید همیشه احتمال NULL بودن را در نظر بگیرید
توابع کار با NULL
| تابع | توضیح |
|---|---|
IFNULL(a, b) | اگر a برابر NULL باشد، b را برمیگرداند |
COALESCE(a, b, c) | اولین مقدار غیر NULL را برمیگرداند |
NULLIF(a, b) | اگر a = b باشد، NULL برمیگرداند |
مثال:
SELECT name, IFNULL(age, 'نامشخص') AS age FROM students;
این مبحث بخشی از دوره آموزش کامل SQL است.