الدرس 12: قيود تكامل البيانات (NOT NULL, UNIQUE, CHECK)
القيود (Constraints) هي قواعد تُطبق على الأعمدة للحد من البيانات التي يمكن تخزينها، مما يضمن موثوقية وجودة قاعدة البيانات الخاصة بك.
1. قيد NOT NULL
يضمن هذا القيد أن العمود لا يمكن أن يحتوي على قيم مفقودة (NULL). إذا حاولت إدراج سجل دون تقديم قيمة لعمود NOT NULL، فستفشل العملية.
- حالة الاستخدام: البيانات الهامة مثل مُعرِّف تسجيل الدخول للمستخدم أو اسم المنتج.
sql CREATE TABLE Users ( UserID INTEGER PRIMARY KEY, Username VARCHAR(50) NOT NULL, -- يجب أن يحتوي على اسم مستخدم LastLogin DATE );
2. قيد UNIQUE
يضمن هذا القيد أن تكون جميع القيم في عمود (أو مجموعة من الأعمدة) فريدة. على عكس المفتاح الأساسي، يمكن أن يحتوي الجدول على قيود UNIQUE متعددة، وقد يظل العمود يسمح بقيم NULL (على الرغم من أنه عادةً ما يُسمح بإدخال NULL واحد فقط).
- حالة الاستخدام: عناوين البريد الإلكتروني، الأرقام التسلسلية، مُعرِّفات جوازات السفر.
sql CREATE TABLE Users ( UserID INTEGER PRIMARY KEY, Email VARCHAR(100) UNIQUE -- يجب أن يكون البريد الإلكتروني فريدًا بين جميع المستخدمين );
3. قيد CHECK
يحدد هذا القيد شرطًا محددًا يجب تلبيته لكل قيمة يتم إدراجها في عمود.
- حالة الاستخدام: ضمان أن تكون الأعمار إيجابية، أو أن تكون الرواتب أعلى من الحد الأدنى للأجور.
sql CREATE TABLE Products ( ProductID INTEGER PRIMARY KEY, Price DECIMAL(10, 2),
-- يجب أن يكون السعر دائمًا أكبر من الصفر
CHECK (Price > 0)
);