منسّق SQL

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

جمّل جمل SELECT وINSERT وUPDATE وDELETE وتعابير CTE وعمليات JOIN والاستعلامات الفرعية لتحصل على 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 …) كعبارات واحدة، بحيث تُطبَّق حالة الأحرف وفواصل الأسطر بشكل متسق.