أكواد SQL جاهزة، أشهر 20 استعلاماً يبحث عنها المطوّر
مكتبة استعلامات SQL جاهزة: SELECT، JOIN، GROUP BY، Window Functions، CTE، وأداء عالٍ — SQL لغة كل مطوّر يعمل مع البيانات.
SQL لغة كل مطوّر يعمل مع البيانات. هذه 20 استعلاماً عملياً لأشهر الحالات.
الأساسيات (5 استعلامات)
1) SELECT بأعمدة محدّدة
SELECT id, name, email, created_at
FROM users
WHERE country = 'SA'
AND created_at >= '2026-01-01'
ORDER BY created_at DESC
LIMIT 100;
2) COUNT + GROUP BY
SELECT country, COUNT(*) AS user_count
FROM users
GROUP BY country
ORDER BY user_count DESC;
3) INSERT
INSERT INTO users (name, email, country)
VALUES ('أحمد', 'ahmed@example.com', 'SA');
-- إدراج متعدّد
INSERT INTO users (name, email) VALUES
('أحمد', 'a@example.com'),
('سارة', 's@example.com'),
('خالد', 'k@example.com');
4) UPDATE
UPDATE users
SET status = 'active',
updated_at = NOW()
WHERE id = 123;
-- تحديث جماعي
UPDATE orders
SET discount = 10
WHERE country = 'SA'
AND total > 1000;
5) DELETE (بحذر!)
-- دائماً استخدم WHERE
DELETE FROM logs
WHERE created_at < NOW() - INTERVAL '30 days';
-- Preview قبل الحذف
SELECT COUNT(*) FROM logs
WHERE created_at < NOW() - INTERVAL '30 days';
JOINs (5 استعلامات)
6) INNER JOIN
-- كل الطلبات مع أسماء العملاء
SELECT o.id, o.total, u.name, u.email
FROM orders o
INNER JOIN users u ON u.id = o.user_id
WHERE o.status = 'paid';
7) LEFT JOIN
-- كل العملاء + طلباتهم (إن وجدت)
SELECT u.name, COUNT(o.id) AS order_count
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id, u.name
ORDER BY order_count DESC;
8) Multiple JOINs
-- عميل + طلب + منتج + شحن
SELECT
u.name AS customer,
o.id AS order_id,
p.name AS product,
s.tracking_number
FROM orders o
JOIN users u ON u.id = o.user_id
JOIN order_items oi ON oi.order_id = o.id
JOIN products p ON p.id = oi.product_id
LEFT JOIN shipments s ON s.order_id = o.id
WHERE o.created_at >= '2026-09-01';
9) SELF JOIN
-- الموظّفون مع مدرائهم
SELECT
e.name AS employee,
m.name AS manager
FROM employees e
LEFT JOIN employees m ON m.id = e.manager_id;
10) FULL OUTER JOIN
-- كل السجلّات من الجدولَين
SELECT u.email, o.total
FROM users u
FULL OUTER JOIN orders o ON o.user_id = u.id;
التجميع والتحليل (5 استعلامات)
11) Top N per Group
-- أعلى 3 عملاء إنفاقاً لكل دولة
SELECT * FROM (
SELECT
u.country,
u.name,
SUM(o.total) AS total_spent,
ROW_NUMBER() OVER (
PARTITION BY u.country
ORDER BY SUM(o.total) DESC
) AS rank
FROM users u
JOIN orders o ON o.user_id = u.id
GROUP BY u.country, u.id, u.name
) ranked
WHERE rank <= 3;
12) Running Total (Window Function)
SELECT
date,
amount,
SUM(amount) OVER (ORDER BY date) AS running_total
FROM sales
ORDER BY date;
13) Percentile
SELECT
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY salary) AS median_salary,
PERCENTILE_CONT(0.9) WITHIN GROUP (ORDER BY salary) AS p90_salary
FROM employees;
14) Moving Average
SELECT
date,
amount,
AVG(amount) OVER (
ORDER BY date
ROWS BETWEEN 6 PRECEDING AND CURRENT ROW
) AS moving_avg_7day
FROM sales;
15) HAVING (فلترة بعد التجميع)
-- الفئات التي لديها أكثر من 10 منتجات
SELECT
category,
COUNT(*) AS product_count
FROM products
GROUP BY category
HAVING COUNT(*) > 10;
الاستعلامات المتقدّمة (5 استعلامات)
16) CTE (Common Table Expression)
WITH monthly_sales AS (
SELECT
DATE_TRUNC('month', created_at) AS month,
SUM(total) AS total_sales
FROM orders
GROUP BY month
),
avg_sales AS (
SELECT AVG(total_sales) AS avg_monthly
FROM monthly_sales
)
SELECT
m.month,
m.total_sales,
a.avg_monthly,
m.total_sales - a.avg_monthly AS diff_from_avg
FROM monthly_sales m
CROSS JOIN avg_sales a
ORDER BY m.month;
17) Recursive CTE (شجرة تنظيمية)
WITH RECURSIVE org_tree AS (
-- المدير الأعلى
SELECT id, name, manager_id, 1 AS level
FROM employees
WHERE manager_id IS NULL
UNION ALL
-- الموظّفون الأدنى
SELECT e.id, e.name, e.manager_id, ot.level + 1
FROM employees e
JOIN org_tree ot ON e.manager_id = ot.id
)
SELECT * FROM org_tree ORDER BY level, name;
18) UPSERT (INSERT أو UPDATE)
-- PostgreSQL
INSERT INTO users (id, name, email)
VALUES (1, 'أحمد', 'ahmed@example.com')
ON CONFLICT (id) DO UPDATE
SET name = EXCLUDED.name,
email = EXCLUDED.email;
-- MySQL
INSERT INTO users (id, name, email)
VALUES (1, 'أحمد', 'ahmed@example.com')
ON DUPLICATE KEY UPDATE
name = VALUES(name),
email = VALUES(email);
19) JSON Operations (PostgreSQL)
-- استخراج قيمة من JSON
SELECT
id,
data->>'name' AS name,
data->'address'->>'city' AS city
FROM users;
-- فلترة بـJSON
SELECT * FROM users
WHERE data->>'country' = 'SA';
-- تحديث حقل JSON
UPDATE users
SET data = jsonb_set(data, '{status}', '"active"')
WHERE id = 1;
20) Pivot (تحويل صفوف إلى أعمدة)
-- PostgreSQL (باستخدام CASE)
SELECT
product_id,
SUM(CASE WHEN region = 'الرياض' THEN quantity ELSE 0 END) AS riyadh,
SUM(CASE WHEN region = 'جدة' THEN quantity ELSE 0 END) AS jeddah,
SUM(CASE WHEN region = 'الدمام' THEN quantity ELSE 0 END) AS dammam
FROM sales
GROUP BY product_id;
نصائح للأداء
1) استخدم الفهارس (Indexes)
CREATE INDEX idx_users_email ON users(email);
CREATE INDEX idx_orders_user_created ON orders(user_id, created_at DESC);
2) EXPLAIN لتحليل الاستعلام
EXPLAIN ANALYZE
SELECT * FROM orders WHERE user_id = 123;
3) LIMIT دائماً في الاستعلامات الاستكشافية
SELECT * FROM huge_table LIMIT 100; -- لا تُحمّل كل الجدول
4) تجنّب SELECT *
-- سيّئ
SELECT * FROM users;
-- جيّد
SELECT id, name, email FROM users;
5) استخدم Transactions للتعديلات المترابطة
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;
-- أو ROLLBACK إذا حصل خطأ
أخطاء شائعة
1) نسيان WHERE في UPDATE/DELETE
كارثة. تحديث/حذف كل الجدول.
2) SELECT * على جدول ضخم
يستهلك ذاكرة، يبطئ الشبكة.
3) N+1 Query Problem
# سيّئ
users = db.execute("SELECT * FROM users")
for user in users:
orders = db.execute(f"SELECT * FROM orders WHERE user_id = {user.id}")
الحلّ: JOIN واحد.
4) SQL Injection
# خطر أمني
db.execute(f"SELECT * FROM users WHERE email = '{email}'")
# آمن
db.execute("SELECT * FROM users WHERE email = ?", (email,))
5) عدم استخدام EXPLAIN
استعلام بطيء بلا تشخيص = لا حلّ.
المصادر الرسمية
أفضل قواعد بيانات لكل استخدام
اختيار قاعدة البيانات المناسبة يوفّر عليك ساعات من الاستعلامات البطيئة:
| قاعدة البيانات | الأنسب لـ | ملاحظات |
|---|---|---|
| MySQL | تطبيقات ويب صغيرة ومتوسّطة | الأشهر عالمياً، سهلة التعلّم |
| PostgreSQL | تطبيقات متقدّمة، بيانات معقّدة | الأقوى مفتوحة المصدر، تدعم JSON وأنواعاً متقدّمة |
| SQLite | تطبيقات الجوّال، مشاريع بسيطة | ملف واحد، بلا خادم |
| MS SQL Server | مؤسّسات كبيرة، ويندوز | تكامل ممتاز مع Excel وPower BI |
| Oracle | البنوك، الشركات الكبيرة | باهظة، لكن قوية جدّاً |
| BigQuery (Google) | تحليلات ضخمة، بيانات كبيرة | سحابية، تدفع لكل استعلام |
| Snowflake | مستودعات بيانات مؤسّسية | سحابية، منفصلة الحوسبة عن التخزين |
للسعودي المبتدئ: ابدأ بـSQLite ثم انتقل لـPostgreSQL. للمحلّل المؤسّسي: تعلّم BigQuery أو Snowflake — هي الأكثر طلباً في السعودية اليوم.
اقرأ أيضاً: أفضل ١٠ أكواد Python · أكواد أتمتة يومية · أكواد Excel و Sheets · Web Scraping
الأسئلة الشائعة
PostgreSQL الأشمل والأقوى للتطبيقات الجدّية. MySQL شائع في الشركات القديمة. SQLite للتطبيقات الصغيرة. SQL Server في بيئات Microsoft.
الأساسية نعم. Window Functions تعمل على PostgreSQL، MySQL 8+، SQL Server، Oracle. SQLite دعم محدود لبعض الميزات المتقدّمة.
ضمن سلسلة: أكواد وأتمتة جاهزة
المقال 5 من 9مقاطع كود جاهزة: بايثون، جافاسكربت، React، SQL، Git، وأتمتة المهام اليومية.
- 1.أفضل 10 أكواد Python يبحث عنها المطوّرونالدليل الشامل
- 2.أفضل أكواد JavaScript يبحث عنها المطوّرون
- 3.أكواد React و Next.js الأساسية 2026
- 4.أكواد HTML و CSS الأساسية، مكتبة المطوّر
- 5.أكواد SQL جاهزة، أشهر 20 استعلاماً يبحث عنها المطوّر
- 6.أكواد Git الأساسية، أوامر كل مطوّر يحتاجها
- 7.أكواد Bash و PowerShell، أتمتة سطر الأوامر
- 8.أكواد Excel و Google Sheets، أتمتة البيانات
- 9.أكواد أتمتة يومية، ادخل عصر الـAutomation
مقالات ذات صلة
AI Jailbreaking و Red Teaming، كيف تُختبَر النماذج
دليل تعليمي لـJailbreaking (كسر حواجز AI) و Red Teaming (فحص الأمان): الأساليب، الدفاعات، والاستخدام المسؤول — النماذج مدرَّبة على Refusals، رفض الأسئلة…
Perplexity AI: هل ستقتل محرّك بحث Google؟
قصّة Perplexity، البديل الذي يجمع بين البحث والذكاء الاصطناعي، تمويلها بمليارات، منافستها لـ Google، والتحدّيات القانونية والتقنية التي تواجهها.
ChatGPT للطلاب، دليل عملي بلا غش
كيف يستخدم الطالب ChatGPT للتعلّم الفعّال بلا كسر الأخلاقيات الأكاديمية: شرح، تدريب، مراجعة، وأخطاء تجنّبها — استخدام ChatGPT بذكاء يحوّلك إلى طالب أفضل.
التحويل بين الهجري والميلادي، أداة تفاعلية ومرجع ٢٠٢٦
أداة تحويل تفاعلية بين تقويم أم القرى الهجري والتقويم الميلادي، مع شرح الفروقات، القواعد الرسمية، وأشهر أخطاء الحساب — أغلب مواقع التحويل بين الهجري…
دليل السفر إلى دبي من السعودية ٢٠٢٦، أفضل وقت للزيارة والفيزا
متى تزور دبي لأفضل طقس، أفضل الأماكن والفعاليات، والفيزا للسعودي — دليل عملي بأرقام طقس حقيقية وجداول شهرية.
مدارس تعليم القيادة في السعودية ٢٠٢٦: الأسعار، الأماكن، وطريقة الاختيار
دليل شامل لمدارس تعليم القيادة في السعودية — الأسعار الحقيقية، المدارس المعتمَدة في كل مدينة، طريقة اختيار المدرسة، وحاسبة تكلفة تفاعلية.