در SQL، مقدار NULL یعنی هیچ مقداری در فیلد ذخیره نشده است. این یعنی آن فیلد خالی است و هیچ مقدار عددی، متنی یا حتی فاصله (Space) ندارد.

📌 مثال: فرض کنید یک جدول به نام Customers داریم که اطلاعات مشتریان را ذخیره می‌کند. برخی از مشتریان ممکن است آدرس خود را ثبت نکرده باشند، بنابراین مقدار NULL در فیلد Address قرار می‌گیرد.


تفاوت مقدار NULL با عدد 0 یا متن خالی ⚠️

  • NULL یعنی مقدار ناشناخته یا خالی است.
  • عدد 0 یعنی مقدار مشخصی (عدد صفر) در فیلد ذخیره شده است.
  • متن خالی (“”) یعنی مقدار وارد شده، ولی هیچ کاراکتری در آن وجود ندارد.

🚨 نکته مهم: مقدار NULL با مقدار 0 یا متن خالی فرق دارد و باید به روش خاصی آن را بررسی کنیم.


چگونه مقدار NULL را در SQL بررسی کنیم؟ 🔍

برای بررسی مقدار NULL نمی‌توان از عملگرهای مقایسه‌ای مثل = یا < یا <> استفاده کرد.

✅ به جای آن باید از IS NULL یا IS NOT NULL استفاده کنیم.


دستور IS NULL در SQL 🛑

از IS NULL برای پیدا کردن فیلدهایی که مقدار NULL دارند استفاده می‌کنیم.

📌 مثال: پیدا کردن مشتریانی که آدرس ندارند

این دستور تمام مشتریانی را نمایش می‌دهد که مقدار NULL در فیلد Address دارند.
دستور IS NOT NULL در SQL

از IS NOT NULL برای پیدا کردن فیلدهایی که مقدار NULL ندارند استفاده می‌کنیم.
 مثال: پیدا کردن مشتریانی که آدرس دارند

این دستور مشتریانی را نمایش می‌دهد که مقدار Address آن‌ها NULL نیست.


جدول نمونه: Customers 📋

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
4Around the HornThomas HardyNULLLondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

📌 در این جدول، مشتری “Around the Horn” مقدار NULL در ستون Address دارد، یعنی آدرس او مشخص نیست.


نتایج اجرای دستورات SQL 📊

لیست مشتریانی که آدرس ندارند:

SELECT CustomerName, ContactName, Address
FROM Customers
WHERE Address IS NULL;

🔹 خروجی:

CustomerNameContactNameAddress
Around the HornThomas HardyNULL

لیست مشتریانی که آدرس دارند:

SELECT CustomerName, ContactName, Address
FROM Customers
WHERE Address IS NOT NULL;

🔹 خروجی:

CustomerNameContactNameAddress
Alfreds FutterkisteMaria AndersObere Str. 57
Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222
Antonio Moreno TaqueríaAntonio MorenoMataderos 2312
Berglunds snabbköpChristina BerglundBerguvsvägen 8

تمرین برای شما 🎯

تمرین 1:
یک جدول Employees (کارمندان) دارید که فیلدی به نام PhoneNumber دارد.
چطور می‌توانید کارمندانی را پیدا کنید که شماره تلفن ندارند؟ 🤔

تمرین 2:
در یک جدول Orders (سفارشات)، بعضی از سفارشات فیلد ShippedDate (تاریخ ارسال) ندارند.
چطور می‌توانید لیست سفارش‌هایی که ارسال نشده‌اند را نمایش دهید؟