تنسيق SQL أونلاين — ترتيب الاستعلامات وإضافة المسافات البادئة
تنسيق SQL مع لهجات MySQL وPostgreSQL وغيرها وحالة الكلمات المفتاحية والمسافات البادئة
تعمل في متصفحك · لا يُرفع أي شيء
ما هذه الأداة؟
الاستعلام المنسوخ من سجل أو من ORM يصل غالبًا في سطر واحد طويل أو بمسافات بادئة غير متسقة، فتصعب قراءته ومراجعته. تقسّم هذه الأداة SQL إلى عبارات مثل SELECT وFROM وWHERE وتضيف مسافات بادئة متسقة، وتتحدث النتيجة أثناء الكتابة.
طريقة الاستخدام
- الصق SQL في خانة الإدخال. لا مشكلة في عدة عبارات يفصل بينها فاصلة منقوطة.
- اختر اللهجة المطابقة لقاعدة بياناتك.
- اختر أحرفًا كبيرة أو صغيرة للكلمات المفتاحية أو أبقها كما كُتبت.
- اختر مسافة بادئة من مسافتين أو 4 مسافات أو Tab وانسخ النتيجة.
كيف تعمل؟
- يتولى التنسيق المكتبة مفتوحة المصدر
sql-formatter. تقسّم المدخلات إلى رموز، ثم تحدد الأسطر الجديدة والمسافات البادئة بحسب العبارة وعمق الأقواس. - اللهجات المدعومة: Standard SQL وMySQL وPostgreSQL وMariaDB وSQLite وBigQuery وOracle (PL/SQL) وSQL Server (T-SQL). وتغيّر اللهجة طريقة قراءة علامات اقتباس المعرّفات (
`و"و[ ]) وعلامات المعاملات (?و$1و@name) والعوامل. - عناصر MyBatis النائبة
#{id}و#{name,jdbcType=VARCHAR}و${table}تبقى كما هي في كل اللهجات. في MySQL يبدأ#عادةً تعليقًا، لكن#{يُعامل كعنصر نائب. والعنصر النائب الممتد على عدة أسطر يُحفظ أيضًا، أما الأقواس المتداخلة مثل#{list[${i}]}فغير مدعومة. - معاملات الربط:
?و:nameفي Standard SQL وMySQL وMariaDB، و$1و:nameفي PostgreSQL، و:nameفي Oracle، و@nameفي SQL Server وBigQuery، ويقبل SQLite كلًا من?و?1و:nameو@nameو$name. - تذكر الأخطاء السطر والعمود والنص الذي توقف عنده التحليل.
- خيار حالة الأحرف يطبَّق على الكلمات المحجوزة فقط. النصوص الحرفية والتعليقات والمعرّفات، بما فيها أسماء الجداول والأعمدة المكتوبة بالعربية، لا تتغير.
- خيار Tab يستخدم حرف Tab واحدًا لكل مستوى.
- الأداة تعيد التنسيق فقط، فلا تنفّذ الاستعلام ولا تتحقق من معناه.
أمثلة
المدخلات:
select id, name from users where age > 20 and city = 'الرياض' order by name
النتيجة (Standard SQL، أحرف كبيرة، مسافتان):
SELECT
id,
name
FROM
users
WHERE
age > 20
AND city = 'الرياض'
ORDER BY
name
الأسئلة الشائعة
هل يُرسل استعلامي إلى خادم؟
لا. يجري التنسيق داخل متصفحك بمكتبة sql-formatter، ولا تُرسل الاستعلامات ولا تُخزَّن. ومع ذلك تجنّب عرض استعلامات تحتوي على كلمات مرور حقيقية أو بيانات شخصية على شاشة مشتركة.
أي لهجة أختار؟
اختر قاعدة البيانات التي تستخدمها، فتُفهم الصياغة الخاصة بها بشكل صحيح، مثل علامات backtick في MySQL، وتحويل الأنواع بـ :: والمعاملات $1 في PostgreSQL. وإذا لم تكن متأكدًا فابدأ بـ Standard SQL.
هل يمكن أن يغيّر التنسيق ما يفعله استعلامي؟
لا يتغير إلا الفراغات والأسطر الجديدة وحالة أحرف الكلمات المفتاحية. تحتفظ النصوص الحرفية والتعليقات والمعرّفات بمحتواها، وتغيير حالة الكلمات المفتاحية لا يمس القيم داخل علامات الاقتباس أبدًا، فيبقى سلوك الاستعلام كما هو.
ماذا لو ظهر خطأ؟
علامة اقتباس غير مغلقة أو رمز لا تدعمه اللهجة المختارة قد يوقف المحلّل. راجع الموضع المذكور في الرسالة أو جرّب لهجة أخرى. هذه أداة تنسيق وليست أداة تحقق، فلن تكتشف كل خطأ في SQL.