سجل التعديلات
الفرق مقارنةً بالنسخة السابقة
+ **SQL** (Structured Query Language) لغة **تصريحية**: تصف النتيجة المطلوبة، ومحرك قاعدة البيانات يقرر كيف يحصل عليها.+ ## إنشاء الجداول++ ```sql+ CREATE TABLE users (+ id SERIAL PRIMARY KEY,+ name TEXT NOT NULL,+ email TEXT NOT NULL UNIQUE,+ created_at TIMESTAMPTZ NOT NULL DEFAULT now()+ );++ CREATE TABLE posts (+ id SERIAL PRIMARY KEY,+ user_id INTEGER NOT NULL REFERENCES users(id),+ title TEXT NOT NULL+ );+ ```++ ## القراءة والتصفية++ ```sql+ SELECT name, email+ FROM users+ WHERE created_at >= '2026-01-01'+ ORDER BY created_at DESC+ LIMIT 10;+ ```++ ## الربط (JOIN)++ ```sql+ SELECT u.name, p.title+ FROM posts p+ JOIN users u ON u.id = p.user_id;+ ```++ `JOIN` (أي `INNER JOIN`) يعيد الصفوف المتطابقة فقط؛ `LEFT JOIN` يعيد كل صفوف الجدول الأيسر حتى بلا تطابق (القيم الناقصة `NULL`).++ ## التجميع++ ```sql+ SELECT u.name, COUNT(p.id) AS posts+ FROM users u+ LEFT JOIN posts p ON p.user_id = u.id+ GROUP BY u.id, u.name+ HAVING COUNT(p.id) > 5;+ ```++ `WHERE` تصفي الصفوف قبل التجميع، و`HAVING` تصفي المجموعات بعده.++ ## التعديل++ ```sql+ UPDATE users SET name = 'سارة' WHERE id = 7;+ DELETE FROM posts WHERE id = 42;+ ```++ ## أخطاء شائعة++ - `UPDATE` أو `DELETE` بلا `WHERE` يغيّر كل الصفوف.+ - مقارنة `NULL` بـ `=`؛ استخدم `IS NULL`.+ - بناء الاستعلام بدمج نصوص من المستخدم يفتح باب **حقن SQL**؛ استخدم الاستعلامات المعاملية (parameterized) دائماً.
مقال مرجعي رسمي من فريق عرب كود
ملاحظة المراجعة: Approved for publication: site owner written instruction 2026-10-24 (final completion directive: populate the wiki via the official editorial identity)