🔍 فهم قيم NULL في SQL: دليل شامل للمبتدئين

في عالم قواعد البيانات، تواجهنا أحياناً حالات تكون فيها بعض البيانات غير معروفة أو غير متوفرة. هنا يأتي دور قيم NULL التي تمثل البيانات المفقودة أو غير المعرفة.


🤔 ما هي قيمة NULL؟

NULL ليست صفراً ولا مسافة فارغة! إنها قيمة خاصة تشير إلى:

  • بيانات غير معروفة
  • معلومات غير متوفرة
  • قيم غير محددة بعد
  • بيانات غير قابلة للتطبيق
-- مثال على جدول يحتوي على قيم NULL
CREATE TABLE employees (
    id INT,
    name VARCHAR(50),
    salary DECIMAL(10,2),
    department VARCHAR(50)
);

-- إدخال بيانات تحتوي على NULL
INSERT INTO employees VALUES 
(1, 'أحمد', 5000, 'المبيعات'),
(2, 'محمد', NULL, 'التسويق'),  -- الراتب غير معروف
(3, 'فاطمة', 6000, NULL);     -- القسم غير محدد

🔎 كيفية التعرف على قيم NULL

لا يمكن استخدام عامل المقارنة العادي (=) مع NULL، بل نستخدم العاملين الخاصين:

-- البحث عن الموظفين الذين ليس لهم راتب (NULL)
SELECT * FROM employees 
WHERE salary IS NULL;

-- البحث عن الموظفين الذين لديهم راتب (ليس NULL)
SELECT * FROM employees 
WHERE salary IS NOT NULL;

⚠️ الأخطاء الشائعة مع NULL

تجنب هذه الأخطاء في تعاملك مع NULL:

-- ❌ خطأ: هذا لن يعمل
SELECT * FROM employees WHERE salary = NULL;

-- ❌ خطأ: هذا أيضاً لن يعمل
SELECT * FROM employees WHERE salary != NULL;

-- ✅ الصحيح: استخدم دائمًا IS NULL أو IS NOT NULL
SELECT * FROM employees WHERE salary IS NULL;

🛠️ الدوال المساعدة للتعامل مع NULL

تقدم SQL دوال خاصة للتعامل مع القيم المفقودة:

-- استخدام COALESCE لإرجاع أول قيمة غير NULL
SELECT name, COALESCE(salary, 0) AS salary 
FROM employees;
-- إذا كان salary NULL سيعرض 0

-- استخدام IFNULL (في MySQL)
SELECT name, IFNULL(salary, 'غير محدد') AS salary 
FROM employees;

📊 تأثير NULL على العمليات الحسابية

القيم NULL تؤثر على نتائج العمليات الحسابية:

-- عملية جمع تحتوي على NULL تعطي نتيجة NULL
SELECT 10 + NULL;  -- النتيجة: NULL

-- متوسط الرواتب يتجاهل القيم NULL تلقائياً
SELECT AVG(salary) FROM employees;
-- سيحسب المتوسط فقط للقيم غير NULL

💡 نصائح عملية للتعامل مع NULL

  1. افحص دائماً وجود NULL قبل إجراء العمليات الحسابية
  2. استخدم COALESCE لتوفير قيم افتراضية
  3. خطط لوجود NULL في تصميم قاعدة البيانات
  4. وثق مكان وجود NULL لتجنب المفاجآت لاحقاً