منسّق SQL

تعمل في المتصفح قواعد البيانات

جمّل جمل SELECT وINSERT وUPDATE وDELETE وتعابير CTE وعمليات JOIN والاستعلامات الفرعية لتحصل على SQL مقروء. اختر حالة أحرف الكلمات المفتاحية وحجم المسافة البادئة ونمط الفواصل.

الخصوصية: تعمل هذه الأداة بالكامل في متصفحك. لا تغادر بياناتك جهازك أبداً.
جارٍ تحميل الأداة…

ما هي SQL، ولماذا تهمّ اللهجة؟

SQL هي لغة استعلام قواعد البيانات العلائقية، موحّدة في خطوطها العامة لكن مطبّقة بفروق لهجية — قواعد الاقتباس والدوال وLIMIT مقابل TOP وصيغ التواريخ — في PostgreSQL وMySQL وSQLite وSQL Server وOracle. يوحّد المنسّق الكلمات المفتاحية والمسافات البادئة وفواصل الأسطر ليمكن قراءة الاستعلام الطويل ومراجعته؛ ويحلّل المدقّق العبارة ليجد أخطاء الصياغة قبل وصولها إلى قاعدة البيانات.

ملاحظة أمنية: عبارات INSERT أو IN المولَّدة مخصصة لبيانات الاختبار والترحيلات. أما في شيفرة التطبيق فيجب أن تمر القيم عبر استعلامات مُعامَلة — بناء SQL من مدخلات المستخدم بربط النصوص هو الطريق إلى حقن SQL.

كيفية استخدام منسّق SQL

  1. الصق جملة SQL واحدة أو أكثر.
  2. اختر اللهجة المطابقة لقاعدة بياناتك، وحالة أحرف الكلمات المفتاحية والمسافة البادئة ونمط الفواصل المفضّلة لديك.
  3. يتحدّث SQL المنسّق فوراً؛ انسخه أو نزّله كملف SQL.

مزايا منسّق SQL

  • خمس لهجات: MySQL/MariaDB وPostgreSQL وSQL Server وOracle وSQLite
  • كلمات مفتاحية بأحرف كبيرة أو صغيرة أو كما هي (والدوال أيضاً)
  • تخطيط بعبارة واحدة في كل سطر مع مسافات بادئة لقوائم SELECT وعمليات JOIN وشروط AND/OR
  • الاستعلامات الفرعية وتعابير CTE (WITH … AS) وتعابير CASE وقوائم VALUES تُنسَّق ككتل بمسافة بادئة
  • نمط الفواصل في نهاية السطر أو بدايته؛ ومسافة بادئة بمسافتين أو 4 مسافات أو علامات جدولة
  • الحفاظ على التعليقات والسلاسل النصية الحرفية والمعرّفات المقتبسة والمعاملات كما هي حرفياً
  • تُنسَّق الجمل المتعددة كلٌّ على حدة مع سطر فارغ بينها

مثال على منسّق SQL

تنسيق استعلام مكتوب في سطر واحد

الإدخال:

select id, name from users where active = 1 and role in ('admin','editor') order by name limit 10

النتيجة:

SELECT
  id,
  name
FROM
  users
WHERE
  active = 1
  AND role IN ('admin', 'editor')
ORDER BY
  name
LIMIT 10

الأسئلة الشائعة حول منسّق SQL

ما لهجات SQL المدعومة؟

MySQL/MariaDB وPostgreSQL وSQL Server (T-SQL) وOracle وSQLite. تتحكم اللهجة في كيفية تجزئة السلاسل النصية والمعرّفات المقتبسة والتعليقات والمعاملات إلى رموز — مثل علامات الاقتباس المائلة (backticks) في MySQL، والأقواس المربعة [brackets] في SQL Server، وعلامات الدولار $$ في PostgreSQL.

هل يغيّر التنسيق ما يفعله الاستعلام؟

لا. يتغير فقط التباعد وحالة أحرف الكلمات المفتاحية؛ أما المعرّفات والسلاسل النصية الحرفية والأرقام والتعليقات فتُحفظ كما هي تماماً.

هل يمكنني تنسيق عدة جمل دفعة واحدة؟

نعم. تُنسَّق الجمل المفصولة بفواصل منقوطة كلٌّ على حدة مع سطر فارغ بينها.

كيف تُعالَج الاستعلامات الفرعية وتعابير CTE؟

توضع الاستعلامات الفرعية الواقعة بين قوسين في كتلة مستقلة بمسافة بادئة، وتُنسَّق عبارات WITH … AS (…) بالطريقة نفسها ليبقى الاستعلام الرئيسي مقروءاً.

هل يعمل مع الإجراءات المخزّنة أو كتل PL/SQL؟

يُنسَّق الكود الإجرائي (كتل BEGIN … END وIF/LOOP) بأفضل جهد ممكن؛ وتعطي جمل DML وDDL العادية أفضل النتائج.

ملاحظات تقنية

يجزّئ المنسّق المدخل إلى رموز بمحلّل معجمي (lexer) واعٍ باللهجة (السلاسل النصية بتهريب '' أو الشرطة المائلة العكسية، والمعرّفات بين علامات اقتباس مزدوجة "…" أو مائلة `…` أو أقواس مربعة […]، وعلامات الدولار $$، والتعليقات -- و# والكتلية، والمعاملات ? و:name و@name و$1)، ثم يطبّق محرك تخطيط صغيراً: تبدأ الكلمات المفتاحية للعبارات في المستوى الأعلى سطراً جديداً وتُزاح محتوياتها بمسافة بادئة، وتبدأ JOIN/AND/OR أسطراً جديدة، وتتحول الأقواس التي تحتوي جملة كاملة إلى كتل بمسافة بادئة بينما تبقى الأقواس المضمّنة في السطر مضغوطة.

تُميَّز الكلمات المفتاحية المركّبة من عدة كلمات (GROUP BY وLEFT OUTER JOIN وIS NOT NULL وON DUPLICATE KEY UPDATE …) كعبارات واحدة، بحيث تُطبَّق حالة الأحرف وفواصل الأسطر بشكل متسق.

المراجع

  • PostgreSQL Documentation: SQL SyntaxThe PostgreSQL Global Development Groupالبنية المعجمية لـ SQL في PostgreSQL: المعرّفات والاقتباس والثوابت النصية والتهريب.
  • SQL As Understood By SQLiteSQLiteقواعد SQL التي يقبلها SQLite، عبارة تلو الأخرى، مع مخططات نحوية.
  • SQL InjectionOWASP Foundationكيف يعمل حقن SQL ولماذا الاستعلامات المُعامَلة، لا بناء النصوص، هي الدفاع.