تخطَّ إلى المحتوى
ARAB CODEمجتمع المطورين العرب

سجل التعديلات

العودة إلى المقال

الفرق مقارنةً بالنسخة السابقة

+ **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) دائماً.
  1. معتمدالنسخة الحاليةفريق عرب كودرسمي

    مقال مرجعي رسمي من فريق عرب كود

    ملاحظة المراجعة: Approved for publication: site owner written instruction 2026-10-24 (final completion directive: populate the wiki via the official editorial identity)