SQL للمستوى المتوسط: استعلامات أكثر قوة لتحليل البيانات

H2: الفهارس (Indexes) وتحسين الأداء

  • الفهارس تساعد على تسريع الاستعلامات، خصوصًا مع الجداول الكبيرة.

  • مثال: إنشاء فهرس على عمود "customer_id":

sql
CREATE INDEX idx_customer_id ON orders(customer_id);
  • ⚠️ خطأ شائع: الإكثار من الفهارس قد يبطئ عمليات الإدخال والتحديث.

H2: الاستعلامات الفرعية (Subqueries)

  • تسمح باستخدام استعلام داخل استعلام آخر.

  • مثال: استخراج الموظفين الذين رواتبهم أعلى من متوسط الرواتب:

sql
SELECT name, salary
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);

H2: أنواع JOIN المتقدمة

H3: LEFT JOIN

يعرض جميع السجلات من الجدول الأول حتى لو لم يكن لها تطابق في الجدول الثاني:

sql
SELECT customers.name, orders.order_id
FROM customers
LEFT JOIN orders ON customers.id = orders.customer_id;

H3: FULL OUTER JOIN

يعرض جميع السجلات من كلا الجدولين حتى لو لم يكن هناك تطابق:

sql
SELECT a.name, b.order_id
FROM customers a
FULL OUTER JOIN orders b ON a.id = b.customer_id;

H2: النوافذ (Window Functions)

  • تستخدم لإجراء حسابات على مجموعة من الصفوف مع الحفاظ على التفاصيل.

  • مثال: حساب ترتيب كل موظف حسب الراتب:

sql
SELECT name, salary,
       RANK() OVER (ORDER BY salary DESC) AS salary_rank
FROM employees;
  • مفيدة جدًا في التحليلات مثل ترتيب المبيعات أو حساب المتوسطات المتحركة.

H2: التعامل مع القيم المفقودة

  • استخدام COALESCE لاستبدال القيم NULL بقيمة افتراضية:

sql
SELECT name, COALESCE(phone, 'غير متوفر') AS phone_number
FROM customers;

H2: التجميع المتقدم

  • استخدام HAVING لتصفية النتائج بعد التجميع:

sql
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 5000;

H2: الأخطاء الشائعة في المستوى المتوسط

  • نسيان الفرق بين WHERE وHAVING (الأول قبل التجميع، الثاني بعده).

  • استخدام JOIN بدون تحديد العلاقة بشكل صحيح مما يؤدي إلى تكرار الصفوف.

  • كتابة استعلامات طويلة بدون تقسيمها أو إضافة تعليقات توضيحية.

الخاتمة

الوصول إلى مستوى متوسط في SQL يعني أنك لم تعد تكتفي بالاستخراج البسيط للبيانات، بل أصبحت قادرًا على تحليلها بعمق، تحسين الأداء، واستخدام وظائف متقدمة مثل النوافذ والاستعلامات الفرعية. هذه المهارات تجعل عملك أكثر احترافية وتفتح لك المجال لاستخدام SQL مع أدوات أخرى مثل Power BI وPython.



الصفحة الرئيسية 

Post a Comment

شاركنا تعليقك

أحدث أقدم