كيفية استخدام مدقّق استعلامات SQL
- الصق جملة واحدة أو أكثر مفصولة بفواصل منقوطة.
- اختر اللهجة.
- راجع جدول المشكلات — فالأخطاء تمنع التنفيذ، والتحذيرات أنماط خطرة، والتلميحات نصائح أسلوبية.
مزايا مدقّق استعلامات SQL
- فحوصات معجمية: السلاسل النصية والتعليقات والمعرّفات المقتبسة غير المغلقة
- توازن الأقواس وأزواج CASE … END، والفواصل الزائدة في النهاية، والعوامل المعلّقة
- ترتيب العبارات في SELECT (FROM → WHERE → GROUP BY → HAVING → ORDER BY → LIMIT)
- تحذيرات أمان: UPDATE/DELETE بدون WHERE، وJOIN بدون ON، والمقارنة "= NULL"
- عدم تطابق عدد الأعمدة والقيم في INSERT
- مؤشرات الحقن: دمج السلاسل النصية مع المتغيرات، والشروط الصحيحة دائماً مثل OR 1=1
- تلميحات خاصة باللهجة (LIMIT مقابل TOP، وعلامات الاقتباس المائلة مقابل الأقواس المربعة)
مثال على مدقّق استعلامات SQL
اكتشاف خطأ في ترتيب العبارات
الإدخال:
SELECT * FROM users ORDER BY id WHERE active = 1النتيجة:
ERROR line 1: WHERE appears after ORDER BY; the expected order is SELECT → FROM → WHERE → GROUP BY → HAVING → WINDOW → ORDER BY → LIMIT.
INFO line 1: SELECT * returns every column.الأسئلة الشائعة حول مدقّق استعلامات SQL
هل يتصل بقاعدة بياناتي؟
لا. التحقق بنيوي بحت ويعمل في متصفحك: فهو يفحص علامات الاقتباس والأقواس وترتيب العبارات والأنماط الخطرة، لكنه لا يستطيع معرفة ما إذا كانت الجداول والأعمدة موجودة.
ما أنواع المشكلات التي يكتشفها؟
السلاسل النصية والتعليقات غير المغلقة، والأقواس غير المتوازنة، والعبارات بترتيب خاطئ (مثل WHERE بعد ORDER BY)، والفواصل الزائدة في النهاية، والعوامل المعلّقة، وعدم تطابق عدد الأعمدة والقيم في INSERT، وغياب WHERE في UPDATE/DELETE، وJOIN بدون ON، والمقارنات "= NULL"، والصياغات الخاصة بلهجة معيّنة مثل LIMIT في SQL Server.
ما تحذير الحقن؟
يُعلِّم السلاسل النصية الحرفية المدموجة مع المتغيرات ('…' + @user)، والشروط الصحيحة دائماً مثل OR 1=1، والقيم الحرفية الشبيهة بالحمولات الخبيثة. استخدم المعاملات المربوطة (bound parameters) بدلاً من بناء SQL من السلاسل النصية.
هل يمكنني التحقق من عدة جمل؟
نعم. تُقسَّم الجمل عند الفواصل المنقوطة ويُبلَّغ عن كل منها بفهرسها ونوعها ومشكلاتها الخاصة.
ملاحظات تقنية
لأن المدقّق لا يعرف مخطط قاعدة بياناتك، فلا يمكنه الإبلاغ عن الجداول أو الأعمدة غير المعروفة. وهو خط دفاع أول سريع للاستعلامات المكتوبة يدوياً ومراجعات الكود وفحوصات CI على سكربتات الترحيل (migration).