7.1 SQL - Constraints
قيود SQL (SQL Constraints)
الـ Constraints في SQL هي قواعد تُفرض على الأعمدة (Columns) أو الجداول (Tables) لتحديد صحة ودقة البيانات المُدخلة.
🟢 تُستخدم لتقييد نوع البيانات التي يمكن تخزينها أو إدخالها في الجدول.
✅ أمثلة على أنواع القيود:
| نوع القيد (Constraint) | الوصف |
|---|---|
NOT NULL |
يمنع أن يحتوي العمود على قيمة NULL |
UNIQUE |
يضمن أن كل القيم في العمود فريدة |
PRIMARY KEY |
يجمع بين NOT NULL و UNIQUE — يُحدد كل صف بشكل فريد |
FOREIGN KEY |
يربط بين جدولين |
CHECK |
يضمن أن القيم تُحقق شرطًا معينًا |
DEFAULT |
يُعيّن قيمة افتراضية للعمود إذا لم يتم إدخال قيمة |
📌 أين تُكتب القيود؟
يمكنك تعريف القيود إما عند إنشاء الجدول (CREATE TABLE) أو لاحقًا باستخدام ALTER TABLE.
🧱 1. مثال باستخدام CREATE TABLE:
CREATE TABLE Customers (
ID int NOT NULL,
CustomerName varchar(255) NOT NULL,
Email varchar(255) UNIQUE,
Age int CHECK (Age >= 18),
Country varchar(100) DEFAULT 'Egypt',
PRIMARY KEY (ID)
);
🧱 2. استخدام ALTER TABLE لإضافة قيود:
ALTER TABLE Customers
ADD CONSTRAINT pk_customer PRIMARY KEY (ID);
ALTER TABLE Customers
ADD CONSTRAINT fk_order_customer FOREIGN KEY (CustomerID) REFERENCES Orders(OrderID);
🔍 شرح سريع للقيود:
🔹 NOT NULL
لا يسمح بأن تكون القيمة فارغة.
🔹 UNIQUE
القيم يجب أن تكون مختلفة في كل صف.
🔹 PRIMARY KEY
قيد أساسي يضمن تفرّد الصف ويُستخدم كمُعرّف فريد. لا يسمح بـ NULL.
🔹 FOREIGN KEY
يربط جدولًا بآخر، ويضمن التوافق بين القيم في الأعمدة المرتبطة.
🔹 CHECK
يفرض شرطًا على القيم (مثال: العمر يجب أن يكون ≥ 18).
🔹 DEFAULT
تُستخدم لتحديد قيمة افتراضية إذا لم يتم تحديد قيمة للعمود عند الإدخال.
💡 تلميحات:
- يمكن الجمع بين أكثر من قيد على نفس العمود.
- القيود تحسن من جودة البيانات وثباتها.
- تسمية القيد (
CONSTRAINT constraint_name) اختيارية لكنها مفيدة للتعديل أو الحذف لاحقًا.
تعليقات
إرسال تعليق