Help:SQL
- مساعدة:SQL
مقدمة
SQL (Structured Query Language) هي لغة قياسية تستخدم لإدارة البيانات المخزنة في أنظمة إدارة قواعد البيانات العلائقية (RDBMS). في سياق MediaWiki، تُستخدم SQL للاستعلام عن قاعدة البيانات التي تخزن محتوى الموقع، مثل الصفحات، المستخدمين، السجلات، وغيرها. هذه الصفحة هي دليل للمبتدئين لاستخدام SQL مع MediaWiki، مع التركيز على الاستعلامات الأساسية وكيفية تطبيقها. فهم SQL يفتح الباب أمام تحليلات متقدمة للبيانات، تقارير مخصصة، وحتى تعديل البيانات (بحذر شديد!). سنستعرض هنا الأساسيات اللازمة لاستخراج المعلومات من قاعدة بيانات MediaWiki الخاصة بك.
ملاحظة هامة: العبث المباشر بقاعدة البيانات يمكن أن يؤدي إلى تلف البيانات أو تعطل الموقع. تأكد من أن لديك نسخة احتياطية كاملة قبل إجراء أي تعديلات. استخدم أدوات واجهات المستخدم (مثل Special:DatabaseReports) كلما أمكن ذلك لتجنب الأخطاء.
الاتصال بقاعدة البيانات
قبل أن تتمكن من استخدام SQL، تحتاج إلى الوصول إلى قاعدة البيانات. عادةً ما يتم ذلك من خلال سطر الأوامر باستخدام أداة مثل `mysql` (إذا كانت قاعدة البيانات MySQL/MariaDB، وهي الأكثر شيوعًا). تحتاج إلى بيانات الاعتماد الصحيحة (اسم المستخدم، كلمة المرور، اسم قاعدة البيانات، عنوان الخادم) للاتصال. هذه المعلومات عادة ما تكون موجودة في ملف `LocalSettings.php` الخاص بـ MediaWiki. لا تقم مطلقاً بمشاركة هذه المعلومات مع أي شخص غير مصرح له.
بنية جملة SQL الأساسية
جملة SQL الأساسية تتكون من الكلمات الرئيسية، وجداول البيانات، والأعمدة، والشروط. الشكل العام هو:
```sql SELECT column1, column2, ... FROM table_name WHERE condition; ```
- `SELECT`: تحدد الأعمدة التي تريد استرجاعها.
- `FROM`: تحدد الجدول الذي تريد الاستعلام عنه.
- `WHERE`: تحدد الشروط التي يجب أن تستوفيها السجلات المراد استرجاعها.
أمثلة على استعلامات SQL الأساسية
لنبدأ ببعض الأمثلة العملية. سنفترض أن لديك معرفة أساسية بأسماء الجداول في قاعدة بيانات MediaWiki. بعض الجداول الشائعة تشمل: `page`, `user`, `revision`, `category`, `watchlist`.
- استرجاع جميع الصفحات:
```sql SELECT page_title FROM page; ```
هذا الاستعلام سيسترجع قائمة بجميع عناوين الصفحات في قاعدة البيانات. قد تكون هذه القائمة طويلة جدًا.
- استرجاع المستخدمين النشطين:
```sql SELECT user_name FROM user WHERE user_editcount > 0; ```
هذا الاستعلام سيسترجع أسماء المستخدمين الذين قاموا بإجراء تعديلات واحدة على الأقل. `user_editcount` هو عمود في جدول `user` يمثل عدد التعديلات التي قام بها المستخدم.
- استرجاع الصفحات في فئة معينة:
هذا الاستعلام أكثر تعقيدًا ويتطلب ربط جدولين: `page` و `categorylink`.
```sql SELECT p.page_title FROM page p JOIN categorylink cl ON p.page_id = cl.page_id JOIN category c ON cl.cat_id = c.cat_id WHERE c.cat_title = 'اسم_الفئة'; ```
استبدل `'اسم_الفئة'` باسم الفئة التي تريد استرجاع الصفحات منها. هذا الاستعلام يربط الجداول الثلاثة بناءً على المعرفات الخاصة بها ويسترجع عناوين الصفحات التي تنتمي إلى الفئة المحددة.
- استرجاع أحدث 10 تعديلات:
```sql SELECT rev_timestamp, rev_user, rev_title FROM revision ORDER BY rev_timestamp DESC LIMIT 10; ```
هذا الاستعلام يسترجع التاريخ والوقت والمستخدم وعنوان الصفحة لأحدث 10 تعديلات. `ORDER BY rev_timestamp DESC` يرتب النتائج بترتيب تنازلي حسب تاريخ التعديل، و `LIMIT 10` يحدد عدد النتائج التي يتم إرجاعها إلى 10.
عوامل التشغيل (Operators) في SQL
تُستخدم عوامل التشغيل في جملة `WHERE` لتحديد الشروط. بعض عوامل التشغيل الشائعة تشمل:
- `=`: يساوي
- `!=` أو `<>`: لا يساوي
- `>`: أكبر من
- `<`: أصغر من
- `>=`: أكبر من أو يساوي
- `<=`: أصغر من أو يساوي
- `LIKE`: يستخدم للبحث عن أنماط (wildcards)
- `IN`: يتحقق مما إذا كانت القيمة موجودة في قائمة محددة
- `BETWEEN`: يتحقق مما إذا كانت القيمة تقع ضمن نطاق محدد
- `AND`: يربط بين شرطين أو أكثر، ويجب أن تكون جميع الشروط صحيحة
- `OR`: يربط بين شرطين أو أكثر، ويجب أن يكون شرط واحد على الأقل صحيحًا
- `NOT`: ينفي شرطًا
أمثلة على استخدام عوامل التشغيل
- استرجاع المستخدمين الذين تم تسجيلهم بعد تاريخ معين:
```sql SELECT user_name FROM user WHERE user_registration_date > '2023-01-01'; ```
- استرجاع الصفحات التي تحتوي عناوينها على كلمة "MediaWiki":
```sql SELECT page_title FROM page WHERE page_title LIKE '%MediaWiki%'; ```
`%` هو wildcard يمثل أي عدد من الأحرف (بما في ذلك لا شيء).
- استرجاع المستخدمين الذين لديهم عدد تعديلات بين 100 و 500:
```sql SELECT user_name FROM user WHERE user_editcount BETWEEN 100 AND 500; ```
الدوال (Functions) في SQL
توفر SQL العديد من الدوال المدمجة التي يمكن استخدامها لمعالجة البيانات. بعض الدوال الشائعة تشمل:
- `COUNT()`: تحسب عدد السجلات.
- `SUM()`: تحسب مجموع القيم في عمود.
- `AVG()`: تحسب متوسط القيم في عمود.
- `MAX()`: تجد القيمة القصوى في عمود.
- `MIN()`: تجد القيمة الدنيا في عمود.
- `UPPER()`: تحول النص إلى أحرف كبيرة.
- `LOWER()`: تحول النص إلى أحرف صغيرة.
- `LENGTH()`: تحسب طول النص.
- `NOW()`: ترجع التاريخ والوقت الحاليين.
أمثلة على استخدام الدوال
- حساب عدد الصفحات في قاعدة البيانات:
```sql SELECT COUNT(*) FROM page; ```
- حساب متوسط عدد التعديلات لكل مستخدم:
```sql SELECT AVG(user_editcount) FROM user; ```
- إيجاد أحدث تاريخ تعديل:
```sql SELECT MAX(rev_timestamp) FROM revision; ```
الربط بين الجداول (Joins)
الربط بين الجداول يسمح لك بالاستعلام عن البيانات من جداول متعددة في نفس الوقت. هناك أنواع مختلفة من الربط:
- `INNER JOIN`: يرجع فقط السجلات التي لها تطابق في كلا الجدولين.
- `LEFT JOIN`: يرجع جميع السجلات من الجدول الأيسر، بالإضافة إلى السجلات المطابقة من الجدول الأيمن.
- `RIGHT JOIN`: يرجع جميع السجلات من الجدول الأيمن، بالإضافة إلى السجلات المطابقة من الجدول الأيسر.
- `FULL OUTER JOIN`: يرجع جميع السجلات من كلا الجدولين، حتى لو لم يكن هناك تطابق.
تجميع البيانات (GROUP BY)
تُستخدم جملة `GROUP BY` لتجميع السجلات بناءً على قيمة عمود واحد أو أكثر. عادةً ما يتم استخدامها مع دوال التجميع مثل `COUNT()`, `SUM()`, `AVG()`, `MAX()`, و `MIN()`.
أمثلة على تجميع البيانات
- حساب عدد الصفحات لكل فئة:
```sql SELECT c.cat_title, COUNT(p.page_id) AS page_count FROM category c JOIN categorylink cl ON c.cat_id = cl.cat_id JOIN page p ON cl.page_id = p.page_id GROUP BY c.cat_title; ```
التحذيرات والممارسات الجيدة
- **النسخ الاحتياطي:** قم دائمًا بعمل نسخة احتياطية من قاعدة البيانات قبل إجراء أي تعديلات.
- **الحذر:** كن حذرًا جدًا عند تعديل البيانات. يمكن أن يؤدي خطأ بسيط إلى تلف البيانات.
- **الأداء:** الاستعلامات المعقدة يمكن أن تستغرق وقتًا طويلاً لإكمالها. حاول تحسين استعلاماتك قدر الإمكان. استخدم الفهارس (indexes) لتحسين أداء الاستعلامات.
- **الأمان:** لا تقم بتضمين بيانات الاعتماد الخاصة بقاعدة البيانات في التعليمات البرمجية المصدرية. استخدم متغيرات البيئة أو ملفات التكوين الآمنة.
- **التعلم المستمر:** SQL لغة قوية ومرنة. استمر في التعلم واستكشاف الميزات الجديدة.
الموارد الإضافية
- Special:DatabaseReports: أداة مضمنة في MediaWiki لإنشاء تقارير بسيطة.
- Manual:Database access: صفحة في دليل MediaWiki حول الوصول إلى قاعدة البيانات.
- Help:Extension:Database functions: صفحة حول استخدام دوال قاعدة البيانات في امتدادات MediaWiki.
- MediaWiki API: واجهة برمجة تطبيقات (API) تسمح لك بالتفاعل مع MediaWiki من خلال البرامج النصية.
تطبيقات في عالم الخيارات الثنائية
على الرغم من أن SQL لا تستخدم بشكل مباشر في تداول الخيارات الثنائية، إلا أن فهمها يمكن أن يكون مفيدًا في تحليل البيانات المتعلقة بالأسواق المالية. على سبيل المثال، يمكن استخدام SQL لتحليل:
- **بيانات تاريخية للأسعار:** استخراج بيانات الأسعار من قواعد البيانات لتحديد الاتجاهات و أنماط الشموع اليابانية.
- **بيانات حجم التداول:** تحليل حجم التداول لتأكيد قوة الاتجاهات وتحديد نقاط الدخول والخروج المحتملة.
- **بيانات المؤشرات الفنية:** حساب المؤشرات الفنية (مثل المتوسطات المتحركة، مؤشر القوة النسبية (RSI)، مؤشر الماكد (MACD)) من بيانات الأسعار.
- **نتائج التداول:** تحليل نتائج التداول الخاصة بك لتحديد نقاط القوة والضعف في استراتيجيات التداول الخاصة بك.
- **تحسين استراتيجية مارتينجال**: تحليل البيانات لتحديد أفضل معلمات لاستراتيجية مارتينجال.
- **تحليل استراتيجية فيبوناتشي**: استخراج بيانات الأسعار لتحديد مستويات فيبوناتشي.
- **تقييم استراتيجية الاختراق**: تحليل بيانات حجم التداول لتأكيد عمليات الاختراق.
- **تحسين استراتيجية التقاطع**: تحديد أفضل معلمات للمتوسطات المتحركة في استراتيجية التقاطع.
- **تحليل استراتيجية البولينجر باند**: استخراج بيانات الأسعار وحساب نطاقات بولينجر.
- **تقييم استراتيجية ستوكاستيك**: تحليل بيانات الأسعار لتحديد ظروف ذروة الشراء والبيع.
- **تحسين استراتيجية هامار**: تحليل البيانات لتحديد أفضل معلمات استراتيجية هامار.
- **تحليل استراتيجية RSI**: استخراج بيانات الأسعار وحساب مؤشر القوة النسبية.
- **تقييم استراتيجية MACD**: تحليل بيانات الأسعار وحساب مؤشر الماكد.
- **تحسين استراتيجية Ichimoku Kinko Hyo**: تحليل البيانات لتحديد أفضل معلمات استراتيجية Ichimoku Kinko Hyo.
- **تحليل استراتيجية Candle Stick Patterns**: استخراج بيانات الأسعار لتحديد أنماط الشموع اليابانية.
- **تقييم استراتيجية Price Action**: تحليل بيانات الأسعار لتحديد أنماط حركة السعر.
- **تحسين استراتيجية Support and Resistance**: تحليل البيانات لتحديد مستويات الدعم والمقاومة.
- **تحليل استراتيجية Trend Following**: استخراج بيانات الأسعار لتحديد الاتجاهات.
- **تقييم استراتيجية Retracement**: تحليل بيانات الأسعار لتحديد عمليات الارتداد.
- **تحسين استراتيجية Breakout**: تحليل البيانات لتحديد عمليات الاختراق.
- **تحليل استراتيجية Consolidation**: استخراج بيانات الأسعار لتحديد فترات التجميع.
- **تقييم استراتيجية Momentum**: تحليل بيانات الأسعار لتحديد الزخم.
- **تحسين استراتيجية Scalping**: تحليل البيانات لتحديد فرص التداول السريع.
- **تحليل استراتيجية Day Trading**: استخراج بيانات الأسعار لتحديد فرص التداول اليومي.
- **تقييم استراتيجية Swing Trading**: تحليل بيانات الأسعار لتحديد فرص التداول المتأرجحة.
خاتمة
SQL هي أداة قوية يمكن أن تساعدك في استخراج رؤى قيمة من قاعدة بيانات MediaWiki الخاصة بك. من خلال فهم الأساسيات التي تمت تغطيتها في هذه الصفحة، يمكنك البدء في كتابة استعلامات SQL الخاصة بك وتحليل البيانات بطرق جديدة ومثيرة. تذكر دائمًا توخي الحذر والاحتياط عند التعامل مع قاعدة البيانات.
الفئة: **SQL** (SQL)
ابدأ التداول الآن
سجّل في IQ Option (الحد الأدنى للإيداع 10 دولار) افتح حساباً في Pocket Option (الحد الأدنى للإيداع 5 دولار)
انضم إلى مجتمعنا
اشترك في قناة Telegram الخاصة بنا @strategybin لتصلك: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات اتجاهات السوق ✓ مواد تعليمية للمبتدئين