🔍 فهم قيم 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
- افحص دائماً وجود NULL قبل إجراء العمليات الحسابية
- استخدم COALESCE لتوفير قيم افتراضية
- خطط لوجود NULL في تصميم قاعدة البيانات
- وثق مكان وجود NULL لتجنب المفاجآت لاحقاً
🎓 اختبر معلوماتك
السؤال 1 من 30% أكملت
ماذا تمثل قيمة NULL في SQL؟
آخر تحديث: ٢٩ أبريل ٢٠٢٦
التعليقات
شاركنا رأيك أو أسئلتك حول هذا المقال
جاري تحميل التعليقات...