شرح صفوف ومحتوى الفقرة
تسمح أعمدة الجداول في MySQL افتراضياً بتخزين العلامة الخاصة NULL التي تعني غياب القيمة أو عدم معرفتها. وعند إضافة قيد NOT NULL بعد نوع بيانات العمود مباشرةً، يرفض محرك InnoDB أي عملية تترك هذا العمود فارغاً ويُظهر الخطأ القياسي Error 1048: Column cannot be null:
- اكتمال البيانات الأساسية: يضمن عدم حفظ سجلات تفتقر إلى الحقول الجوهرية مثل البريد الإلكتروني أو اسم المنتج أو السعر.
- تحسين التخزين والفهرسة: يوفر محرك InnoDB بايتات رايات الفراغ (NULL Bitmask) عندما يكون العمود معرَّفاً بقيد
NOT NULL. - الفرق بين NULL والنص الفارغ: تعني
NULLغياب القيمة تماماً، بينما يُعد النص الفارغ''سلسلة نصية فعلية طولها صفر.
SQL
CREATE TABLE customers (
full_name VARCHAR(100) NOT NULL,
email VARCHAR(150) NOT NULL,
phone_number VARCHAR(25) NULL,
notes TEXT NULL
);