The Code Fix

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

ربط الجداول (JOIN) والتجميع

لماذا JOIN؟

البيانات موزّعة على عدة جداول. مثلًا جدول users وجدول orders. نربطهما لنرى طلبات كل مستخدم.

-- orders فيه عمود user_id يشير إلى users.id
SELECT users.name, orders.total
FROM orders
INNER JOIN users ON orders.user_id = users.id;

INNER JOIN

يجلب الصفوف التي لها تطابق في الجدولين فقط.

LEFT JOIN

يجلب كل صفوف الجدول الأيسر، حتى بلا تطابق (تظهر NULL):

SELECT users.name, orders.total
FROM users
LEFT JOIN orders ON users.id = orders.user_id;

مفيد لمعرفة المستخدمين الذين لم يطلبوا شيئًا.

دوال التجميع (Aggregate)

SELECT COUNT(*) FROM users;        -- عدد الصفوف
SELECT AVG(age) FROM users;        -- المتوسط
SELECT MAX(price) FROM products;   -- الأكبر
SELECT SUM(total) FROM orders;     -- المجموع

التجميع (GROUP BY)

نحسب قيمة لكل مجموعة:

-- عدد المستخدمين في كل مدينة
SELECT city, COUNT(*) AS count
FROM users
GROUP BY city;

التصفية بعد التجميع (HAVING)

SELECT city, COUNT(*) AS count
FROM users
GROUP BY city
HAVING COUNT(*) > 10;

💡 WHERE يصفّي الصفوف قبل التجميع، وHAVING يصفّي المجموعات بعده.

🎉 أكملت أساسيات SQL! أصبحت قادرًا على إدارة قواعد البيانات والاستعلام عنها. اختبر نفسك واحصل على شهادتك.