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) اختيارية لكنها مفيدة للتعديل أو الحذف لاحقًا.

تعليقات

المشاركات الشائعة من هذه المدونة

HTML - Text Formatting تنسيقات النص

1.1 SQL Introduction

Entity Framework - مقدمة عن Entity Framework