دورة تفاعلية
دورة SQL
تعلم SQL من الصفر، باللغة الإنجليزية، باستخدام Postgres الحقيقي الذي يعمل في متصفحك.
01 · الوحدة 1 - التحديد الأساسي
الأسس: قراءة البيانات من الجدول وتصفيتها.
02 · الوحدة 2 - تحديد أكثر قوة
الحد، وإلغاء التكرار، وإعادة التسمية والعد: الأدوات التي تستخدمها كل يوم.
- 2.1الحد مع LIMITإرجاع الصفوف N الأولى فقط، على سبيل المثال لإنشاء لوحات الصدارة.~6 min
- 2.2قيم فريدة مع DISTINCTإزالة التكرارات من نتيجة SELECT.~6 min
- 2.3إعادة التسمية باستخدام ASإعطاء أسماء أكثر قابلية للقراءة للأعمدة والتعبيرات في النتيجة.~6 min
- 2.4العد والتلخيص: COUNT، AVG، MAXوظائف التجميع: الحصول على رقم واحد من عدة صفوف.~8 min
03 · الوحدة 3 - الانضمام والتجميع حسب
الجمع بين جداول متعددة وإنتاج التقارير حسب المجموعة: قلب كل استعلام حقيقي.
- 3.1الانضمام إلى جدولين: INNER JOINدمج الصفوف من جداول مختلفة بعد العلاقات بينها.~12 min
- 3.2إبقاء كل شيء على اليسار: LEFT JOINبما في ذلك الصفوف التي ليس لها تطابق في الجدول الآخر.~10 min
- 3.3التجميع باستخدام GROUP BYحساب إجمالي لكل مجموعة، على سبيل المثال لكل قسم.~10 min
- 3.4مجموعات التصفية: تملكالاحتفاظ فقط بالمجموعات التي تحقق شرطًا ما في المجموع.~8 min
04 · الوحدة 4 - SQL العملي
الأدوات التي تُحدث فرقًا في العمل الحقيقي: القوائم والنطاقات والقيم الخالية والمنطق الشرطي.
- 4.1القوائم والنطاقات: في وبينمرشحات مدمجة لـ "أحد هذه" و"بين A وB".~8 min
- 4.2التعامل مع القيم الخالية: IS NULL و COALESCEالتعرف على القيم المفقودة والتعامل معها دون مفاجآت.~10 min
- 4.3المنطق الشرطي: الحالة متىتحويل القيم إلى فئات مباشرة في SELECT.~10 min
- 4.4استعلام داخل آخر: الاستعلامات الفرعيةاستخدام نتيجة SELECT داخل SELECT آخر.~12 min
05 · الوحدة 5 - عمليات الانضمام المتقدمة
عمليات الانضمام للجداول المتعددة، والانضمامات الذاتية، والعمليات الخارجية، والتقاطعية، والتعيين: دمج البيانات مثل المحترفين.
- 5.1الصلات على ثلاثة جداول أو أكثراجتياز سلسلة من العلاقات: الطلبات → العملاء → المنتجات، في استعلام واحد.~12 min
- 5.2الانضمام الذاتي: جدول مع نفسهالتسلسلات الهرمية والعلاقات الداخلية: قراءة جدول به دورين (الطفل والوالد).~10 min
- 5.3الانضمام الخارجي: العثور على "الثغرات"استخدام LEFT/RIGHT/FULL OUTER JOIN للعثور على صفوف بدون تطابق.~10 min
- 5.4اتحاد، تقاطع، باستثناء (وCROSS JOIN)دمج النتائج كمجموعات: الاتحاد والتقاطع والفرق والضرب الديكارتي.~12 min
06 · الوحدة 6 - الوظائف المضمنة
قم بتحويل البيانات ومعالجتها باستخدام وظائف PostgreSQL الأصلية: السلاسل والتواريخ والأرقام وتحويلات النوع.
- 6.1وظائف السلسلةأقل، أعلى، طول، سلسلة، سلسلة فرعية، تقليم، استبدال، مثل وأعجبني.~12 min
- 6.2وظائف التاريخ والطابع الزمنيEXTRACT، DATE_TRUNC، الفواصل الزمنية وفروق التاريخ.~12 min
- 6.3وظائف رقميةROUND، CEIL، FLOOR، ABS، MOD والعدد الصحيح مقابل القسمة العشرية.~10 min
- 6.4CAST واكتب التحويلاتالتحويل بين الأنواع باستخدام `::type` و`CAST(... AS ...)`.~10 min
07 · الوحدة 7 – التحليلات المتقدمة
الاستعلامات متعددة الخطوات (CTE)، والتصنيفات وإجماليات التشغيل (وظائف النافذة)، والتسلسلات الهرمية غير المحدودة (مع العودية).
- 7.1CTE: استعلامات متعددة الخطوات باستخدام NOTتقسيم استعلام معقد إلى خطوات مسماة لسهولة القراءة وإعادة الاستخدام.~12 min
- 7.2وظائف النافذة: التصنيف والحسابات لكل مجموعةROW_NUMBER، RANK، DENSE_RANK مع أكثر من (PARTITION BY …) للتصنيفات داخل المجموعة.~14 min
- 7.3إجماليات التأخر والرصاص والتشغيلمقارنة كل صف بالصف السابق/التالي وحساب المجاميع التراكمية.~12 min
- 7.4CTEs العودية: التسلسلات الهرمية التعسفيةمع تكراري لاجتياز التسلسلات الهرمية مثل الفئات.~14 min
08 · الوحدة 8 - كتابة البيانات وتعديلها
إدراج وتحديث وحذف وإنشاء جدول مع القيود والمعاملات: إغلاق الحلقة بالكتابة.
- 8.1إدخال البيانات: INSERTإدراج مفرد ومتعدد الصفوف، عبارة RETURNING، اختيار الأعمدة بشكل صريح.~10 min
- 8.2التحديث والحذف: التحديث والحذفتغييرات انتقائية مع أين، ولماذا يعتبر نسيان أين كارثة.~10 min
- 8.3إنشاء الجداول والقيود: DDLإنشاء جدول باستخدام المفتاح الأساسي، وليس فارغًا، وفريدًا، ومفتاحًا خارجيًا، وشيكًا، وافتراضيًا.~12 min
- 8.4المعاملات: كل شيء أو لا شيءالبدء، الالتزام، التراجع: جعل مجموعة من العمليات ذرية.~10 min
09 · الوحدة 9 - هياكل البيانات وDDL
إنشاء وتعديل الجداول والقيود المتقدمة والأنواع وطرق العرض المعقدة.
- 9.1أنواع البيانات المتقدمة وENUMsالأنواع الرقمية، TEXT vs VARCHAR، BOOLEAN، UUID وأنواع ENUM المخصصة.~10 min
- 9.2قيود متعددة وعلى مستوى الجدولقيود المفاتيح الفريدة والأساسية المركبة والفحص المتقدم والمفاتيح الخارجية (ON DELETE CASCADE).~12 min
- 9.3تغيير الهيكل: ALTER TABLEإضافة وتعديل وإزالة الأعمدة أو القيود من الجداول الموجودة.~10 min
- 9.4وجهات النظر وتجريد البياناتإنشاء طرق عرض لتبسيط الاستعلامات المعقدة ووجهات نظر مادية للأداء.~12 min
10 · الأمثل والفهارس
فن جعل الاستعلامات سريعة: الفهارس وخطط التنفيذ وتحسين قاعدة البيانات.
- 10.1الفهارس وأشجار Bقم بإنشاء فهارس لتسريع استعلامات البحث بشكل كبير على الجداول الكبيرة.~15 min
- 10.2اشرح وحللتعلم كيفية قراءة خطط تنفيذ قاعدة البيانات لتشخيص الاختناقات.~15 min
- 10.3الفهارس المركبة والجزئيةاستخدم الفهارس على أعمدة متعددة مرة واحدة أو على شريحة معينة من البيانات فقط.~12 min
- 10.4مشكلة N+1مشكلة أداء ORM سيئة السمعة وطرق SQL الأصلية للتغلب عليها في استعلام واحد.~12 min
11 · المعاملات والتزامن
إدارة تعديلات البيانات المتزامنة بأمان: معاملات ACID والأقفال ومستويات العزل.
- 11.1معاملات ACID (البدء/الالتزام)حافظ على اتساق البيانات مع BEGIN وCOMMIT وROLLBACK، وقم بتجميع الاستعلامات في كتلة واحدة غير مرئية للآخرين.~15 min
- 11.2ظروف السباقسيناريوهات الحافة: ماذا يحدث عندما يعمل موظفان متوازيان في قاعدة البيانات على نفس عربة المستخدم.~10 min
- 11.3القفل والاختيار للتحديثقفل الصفوف بشكل نشط أثناء القراءة، مما يجبر المواضيع المتغيرة الأخرى على انتظار دورها.~15 min
- 11.4مستويات العزلةادفع إلى أقصى الحدود من خلال تطبيق Serializable، أو قم بالهبوط إلى القراءة الملتزم بها للحصول على أداء غير آمن ولكن سريع.~12 min
12 · الوظائف والمشغلات
أتمتة منطق الأعمال داخل قاعدة البيانات: كتابة وظائف قابلة لإعادة الاستخدام والتفاعل مع الأحداث باستخدام المشغلات.
- 12.1UDFs وSQL الأساسيةقم بإنشاء وظائف محددة من قبل المستخدم لتغليف الحسابات المعقدة وإعادة استخدامها مثل وحدات الماكرو في كل استعلام.~15 min
- 12.2المنطق المتقدم مع PL/pgSQLامنح وظائفك قوى خارقة: المتغيرات وفروع if-else والحلقات بأسلوب إجرائي خالص داخل قاعدة البيانات.~15 min
- 12.3مقدمة للمحفزاتحدد وظائف خاصة يمكنها فحص السجل الصادر (القديم) أو الوارد (الجديد) على الفور.~15 min
- 12.4المحفزات العملية والتدقيقأتمتة الأمان: التحديث التلقائي لتاريخ "updated_at" وأرشفة الصفوف المحذوفة بطريقة سحرية لضمان الامتثال.~12 min
13 · وظائف النافذة
تحليل البيانات المتقدم دون طي الصفوف: اكتشف OVER() وPARTITION BY والوظائف التحليلية.
- 13.1المقدمة والجملة OVERقم بتشغيل الحسابات المجمعة (مثل SUM أو AVG) مع الحفاظ على الصفوف الفردية الأصلية.~15 min
- 13.2التجميع باستخدام PARTITION BYقم بإنشاء مجموعات منطقية (نوافذ) داخل البيانات التي سيتم تطبيق الوظائف عليها، دون استخدام GROUP BY.~15 min
- 13.3التصنيفات: ROW_NUMBER وRANK وDENSE_RANKقم بتعيين أرقام الصفوف والرتب التسلسلية للنتائج، والتعامل مع الروابط بشكل صحيح.~15 min
- 13.4التحولات: التأخر والرصاصقم بالوصول إلى القيم من الصف السابق أو التالي مباشرةً من الصف الحالي لحساب الدلتا والتباينات.~12 min
14 · CTEs والاستعلامات الهرمية (WITH)
يمكنك تبسيط الاستعلامات الضخمة باستخدام تعبيرات الجدول الشائعة والتنقل في أشجار البيانات غير المحدودة باستخدام عناصر CTE المتكررة.
- 14.1مقدمة إلى CTEs (مع)استبدل الاستعلامات الفرعية المتداخلة غير القابلة للقراءة بتنسيق إجرائي نظيف من خلال الإعلان عن "جداول افتراضية" مؤقتة.~12 min
- 14.2CTEs متعددة ومتسلسلةيمكنك ترويض التعقيد عن طريق تقسيم المعالجة إلى خطوات متسلسلة متعددة داخل عبارة "With" واحدة.~15 min
- 14.3CTEs العودية: بيانات على شكل شجرةالتنقل بلا حدود في التسلسلات الهرمية للمدير وفئات الوالدين والطفل عن طريق استدعاء CTE من نفسه.~18 min
15 · PostgreSQL JSON وNoSQL
استفد من القوة العلائقية الممزوجة بدعم المستندات المرن عبر JSON وJSONB دون استخدام قواعد بيانات خارجية.