طريقة الاستخدام
- الصق العبارة في SQL. يُرتَّب التنسيق أثناء كتابتك.
- اختر المسافة البادئة: مسافتان أو 4 مسافات.
- فعّل ضغط: كل شيء في سطر واحد إن كان يجب أن تبقى العبارة سطراً واحداً، لملف إعدادات أو سجل.
- انسخ SQL بعد التنسيق، أو نزّله باسم formatted.sql.
كيف يُبنى التنسيق
يقرأ المنسّق النص كرموز: كلمات وأرقام ونصوص وأسماء مقتبسة وتعليقات وعوامل وعلامات ترقيم. تُكتب الكلمات الواردة في قائمة الكلمات المفتاحية لـ SQL بالأحرف الكبيرة، وتبقى البقية، بما فيها الأسماء، على هجائها الأصلي. ويبدأ بند مثل SELECT وFROM وWHERE وGROUP BY وHAVING وORDER BY سطراً جديداً، ويُزاح محتواه خطوة تحته.
داخل SELECT وFROM وGROUP BY وORDER BY وSET وVALUES تبدأ كل فاصلة سطراً جديداً. ويبدأ AND وOR سطراً تحت WHERE وHAVING وON. ويبدأ الربط مثل LEFT OUTER JOIN سطراً تحت FROM، ويبقى شرط ON في ذلك السطر. والاستعلام الفرعي بين قوسين يُزاح خطوة أعمق من السطر الذي فيه القوس، ويصطف قوس إغلاقه مع ذلك السطر.
- النصوص ذات الاقتباس المضاعف، والمعرّفات المقتبسة بعلامات مزدوجة أو backticks أو أقواس مربعة، والنص المقتبس بالدولار، تبقى كما هي تماماً.
- التعليقات السطرية والكتلية تبقى. وعند الضغط يتحول التعليق السطري إلى تعليق كتلي، حتى تبقى العبارة في سطر واحد.
ما لا يفعله المنسّق
لا يحلل المنسّق العبارة، فلا يتحقق من أنها SQL صالح، ولا يغيّر معناها. ولا يعرف قواعد قاعدة بيانات بعينها، فكلمة مفتاحية خاصة في لغة وعادية في أخرى تُكتب بالأحرف الكبيرة في الحالتين. تحقق من النتيجة في قاعدة بياناتك قبل أن تستخدمها في الإنتاج.
مثال محلول: استعلام تقرير
العبارة الافتراضية تختار المعرّف والاسم للمستخدمين النشطين مع عدد طلباتهم، ثم تجمعهم وترتبهم حسب العدد. وعند التنسيق بمسافتين، تحوي قائمة الاختيار عموداً في كل سطر، ويبدأ كل بند سطره، ويكون LIMIT 10 هو السطر الأخير.
وبعد الضغط تصبح العبارة نفسها سطراً واحداً بمسافات مفردة بين الكلمات. ويعرض العداد 1 عبارة.
الأسئلة الشائعة
أي لهجة من SQL يدعمها المنسّق؟
يعمل مع الأجزاء التي تشترك فيها أغلب اللهجات، مثل SELECT وINSERT وUPDATE وDELETE والربط والاستعلامات الفرعية وCASE. ويقبل أساليب الاقتباس في MySQL وPostgreSQL وSQL Server وSQLite، لكنه لا يتحقق من صياغة خاصة بلهجة معينة.
هل يغيّر التنسيق نتيجة استعلامي؟
لا. يتغير فقط عدد المسافات وفواصل الأسطر وحالة الأحرف في الكلمات المفتاحية. وتبقى الأسماء والنصوص والأرقام والتعليقات كما هي تماماً، فتبقى العبارة بالمعنى نفسه.
لماذا تحوّلت كلمة في اسم جدولي أو عمودي إلى أحرف كبيرة؟
الكلمة واردة في قائمة الكلمات المفتاحية، مثل USE أو ORDER، فتُكتب بالأحرف الكبيرة أينما وردت. وتبقى الأسماء غير الواردة في القائمة كما كتبتها. اقتبس مثل هذا الاسم بعلامات مزدوجة أو backticks ليبقى كما كتبته.
لماذا يتحول التعليق السطري إلى تعليق كتلي عند الضغط؟
ينتهي التعليق السطري عند نهاية سطره، فلو بقي على سطر واحد لأخفى بقية العبارة. أما التعليق الكتلي فيحفظ النص ولا يخفي الكود الذي بعده.
هل يُرسل SQL الخاص بي إلى خادم؟
لا. يعمل التنسيق في متصفحك. ولا يُرسل ما تلصقه إلى خادمنا ولا يُحفظ فيه، وهذا مهم حين تحوي العبارة بيانات خاصة.
المصادر
- PostgreSQL documentation: SQL syntax, lexical structure (باللغة الإنجليزية)
- SQLite documentation: SQL keywords (باللغة الإنجليزية)
آخر مراجعة للأرقام والنص: الثلاثاء، 30 جمادى الأولى 1448 بعد الهجرة.