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

المفاتيح والعلاقات

المفتاح الأساسي (PRIMARY KEY)

عمود يميّز كل صف بشكل فريد ولا يتكرّر ولا يكون NULL:

CREATE TABLE users (
  id INT PRIMARY KEY,
  name VARCHAR(100)
);

الترقيم التلقائي

-- MySQL
CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(100)
);
-- PostgreSQL: id SERIAL PRIMARY KEY

كل صف جديد يأخذ id تلقائيًّا (1, 2, 3...).

المفتاح الأجنبي (FOREIGN KEY)

يربط جدولًا بآخر ويضمن سلامة العلاقة:

CREATE TABLE orders (
  id INT AUTO_INCREMENT PRIMARY KEY,
  user_id INT,
  total DECIMAL(10,2),
  FOREIGN KEY (user_id) REFERENCES users(id)
);

الآن لا يمكن إضافة طلب بـ user_id لا يوجد في users.

أنواع العلاقات

العلاقةمثال
واحد لواحد (1:1)مستخدم ↔ ملف شخصي
واحد لمتعدّد (1:N)مستخدم ↔ طلبات كثيرة
متعدّد لمتعدّد (N:M)طلاب ↔ مقرّرات (عبر جدول وسيط)

التتالي (ON DELETE)

FOREIGN KEY (user_id) REFERENCES users(id)
  ON DELETE CASCADE   -- حذف المستخدم يحذف طلباته

💡 العلاقة متعدّد-لمتعدّد تحتاج جدول وسيط يحمل المفتاحين الأجنبيين.

🎯 التالي: تعديل بنية الجداول بـ ALTER و DROP.