🗄️ شرح SQL وقواعد البيانات

القيم الفارغة NULL

ما هو NULL؟

NULL يعني لا توجد قيمة (مجهولة أو غير مُدخلة). وهو ليس صفرًا ولا نصًّا فارغًا.

فحص NULL

لا يعمل = مع NULL — استخدم IS NULL و IS NOT NULL:

SELECT * FROM users WHERE phone IS NULL;       -- بلا رقم
SELECT * FROM users WHERE phone IS NOT NULL;   -- لديه رقم

⚠️ WHERE phone = NULL يعيد دائمًا لا شيء — خطأ شائع جدًّا.

COALESCE — أول قيمة غير فارغة

SELECT name, COALESCE(phone, 'لا يوجد') AS phone FROM users;

تقبل عدّة قيم وتعيد أول واحدة ليست NULL:

SELECT COALESCE(nickname, name, 'مجهول') FROM users;

IFNULL / ISNULL

SELECT IFNULL(phone, 'لا يوجد') FROM users;   -- MySQL
-- SQL Server: ISNULL(phone, 'لا يوجد')
-- PostgreSQL: استخدم COALESCE

NULLIF

يعيد NULL إذا تساوت القيمتان — مفيد لتجنّب القسمة على صفر:

SELECT total / NULLIF(count, 0) FROM stats;

NULL في الحسابات والتجميع

  • أي عملية حسابية مع NULL تعطي NULL: 5 + NULL = NULL.
  • دوال التجميع تتجاهل NULL: AVG(age) يحسب المتوسط للصفوف غير الفارغة فقط.

🎯 التالي: أنواع البيانات في الأعمدة.