منسّق SQL

حوّل استعلامات SQL الطويلة والفوضوية إلى استعلامات نظيفة ومنسّقة لـ MySQL و PostgreSQL و SQL Server و SQLite و BigQuery وغيرها.

يعمل 100% في متصفحك. لا يتم رفع أي شيء تلصقه أو تخزينه.
استعلام SQL
SQL المنسّق
جاهز.

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

  1. الصق عبارة SQL واحدة أو أكثر في مربع الإدخال.
  2. اختر لهجة SQL (Dialect) المطابقة لقاعدة بياناتك: SQL القياسية أو MySQL أو PostgreSQL أو SQL Server (T-SQL) أو SQLite أو MariaDB أو BigQuery أو Snowflake أو Oracle PL/SQL.
  3. اختر حالة أحرف الكلمات المفتاحية: «أحرف كبيرة» أو «أحرف صغيرة» أو «الإبقاء كما هي».
  4. حدّد حجم المسافة البادئة.
  5. انقر على تنسيق SQL وانسخ النتيجة.

تُنسَّق استعلاماتك داخل المتصفح ولا تُرفع ولا تُخزَّن أبدًا، فيمكنك لصق استعلامات الإنتاج التي تكشف أسماء الجداول أو منطق العمل بأمان.

لماذا ننسّق SQL؟

لغة SQL لا تتأثر بالمسافات البيضاء: تنفّذ قاعدة البيانات الاستعلام المكتوب في سطر واحد تمامًا كما تنفّذ استعلامًا منسّقًا بمسافات بادئة مرتبة. لكن البشر يقرؤونهما بشكل مختلف جدًا. فالاستعلامات المنسوخة من سجلات ORM أو أدوات المراقبة أو تقارير الاستعلامات البطيئة تصل عادةً في سطر واحد طويل، مما يصعّب معرفة الشروط التابعة لكل ربط (join) أو استعلام فرعي.

يضع المنسّق كل جملة رئيسية (SELECT وFROM وJOIN وWHERE وGROUP BY وORDER BY) في سطرها الخاص ويضيف مسافات بادئة متسقة للأجزاء المتداخلة. قارن:

select u.id,u.email,count(o.id) as orders from users u left join orders o on o.user_id=u.id where u.created_at>='2026-01-01' group by u.id,u.email having count(o.id)>5 order by orders desc;
SELECT
  u.id,
  u.email,
  COUNT(o.id) AS orders
FROM
  users u
  LEFT JOIN orders o ON o.user_id = u.id
WHERE
  u.created_at >= '2026-01-01'
GROUP BY
  u.id,
  u.email
HAVING
  COUNT(o.id) > 5
ORDER BY
  orders DESC;

النسخة المنسّقة أسهل في المراجعة ضمن طلب الدمج (pull request)، وأسهل في تصحيح الأخطاء، وتنتج فروقًا (diffs) أنظف عندما يضيف أحدهم لاحقًا عمودًا أو شرطًا.

لماذا تهمّ اللهجة

توسّع كل قاعدة بيانات SQL القياسية بصياغتها الخاصة. واختيار اللهجة الصحيحة يساعد المنسّق على التعرف إلى الكلمات المفتاحية والعوامل واقتباس المعرّفات بشكل صحيح:

اللهجةاقتباس المعرّفاتأمثلة على الصياغة الخاصة
MySQL / MariaDB`backticks`LIMIT 10، وON DUPLICATE KEY UPDATE
PostgreSQL"double quotes"تحويلات ::، وRETURNING، وILIKE
SQL Server (T-SQL)[brackets]SELECT TOP 10، و@variables
BigQuery`backticks`STRUCT، وUNNEST، وEXCEPT في SELECT *
Oracle PL/SQL"double quotes"FETCH FIRST 10 ROWS ONLY، وكتل BEGIN … END;

إذا بدا تنسيق استعلام ما غريبًا، كأن يُقسَّم عامل أو تُعامَل كلمة مفتاحية على أنها اسم عمود، فعادةً ما يحل التبديل إلى اللهجة الصحيحة المشكلة.

أخطاء SQL الشائعة التي يساعدك التنسيق على اكتشافها

لا ينفّذ المنسّق استعلامك ولا يتحقق من صحته بالكامل، لكن التخطيط الواضح يكشف كثيرًا من الأخطاء:

  • فاصلة ناقصة في قائمة SELECT. الاستعلام SELECT id name FROM users سليم نحويًا، لكنه يُرجع id بالاسم المستعار name. ومع عمود واحد في كل سطر تبرز الفاصلة الناقصة.
  • مرشِّح على جدول مرتبط بربط خارجي داخل WHERE. الصيغة LEFT JOIN orders o … WHERE o.status = 'paid' تحوّل الربط الخارجي بصمت إلى ربط داخلي. انقل الشرط إلى جملة ON إذا أردت الإبقاء على الصفوف غير المطابقة.
  • خلط AND وOR دون أقواس. يرتبط AND بقوة أكبر من OR، فالتعبير a OR b AND c يعني a OR (b AND c). أضف أقواسًا لتوضيح القصد.
  • أقواس أو علامات اقتباس غير متوازنة. عندما تنحرف المسافات البادئة في الناتج فجأة، فابحث عن قوس غير مغلق أو نص حرفي غير مغلق قبل تلك النقطة مباشرةً.

نصائح وأفضل الممارسات

  • كتابة الكلمات المفتاحية بأحرف كبيرة اصطلاح واسع الانتشار لأنه يفصل صياغة SQL عن أسماء جداولك وأعمدتك؛ وكتابتها بأحرف صغيرة صحيحة بالقدر نفسه. اختر أسلوبًا واحدًا لكل مشروع.
  • ضع دائمًا أسماء مستعارة للجداول في الاستعلامات متعددة الجداول وأرفق أسماء الأعمدة ببادئة الجدول (u.id بدلًا من id).
  • لا تبنِ SQL أبدًا بدمج مدخلات المستخدم. استخدم الاستعلامات ذات المعاملات أو العبارات المُعدَّة لمنع حقن SQL.
  • هل تخزّن الطوابع الزمنية كأعداد صحيحة؟ استخدم محوّل الطابع الزمني Unix لمعرفة معنى القيمة، ومولّد UUID لمفاتيح أساسية للاختبار.
نصيحة: هل تنسّق نتيجة استعلام مخزّنة بصيغة JSON؟ الصقها في منسّق JSON وأداة التحقق منه.

الأسئلة الشائعة

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

لا. لا يغيّر المنسّق سوى المسافات البيضاء وفواصل الأسطر، وحالة أحرف الكلمات المفتاحية إن اخترت ذلك. أما المعرّفات والنصوص الحرفية ومنطق الاستعلام فتبقى كما هي.

هل يتحقق منسّق SQL من صحة استعلامي؟

ليس بالكامل. هو يحلل الاستعلام إلى رموز ليرتّبه، فقد ينتج مدخل معطوب جدًا ناتجًا غريبًا، لكنه لا يتحقق من وجود الجداول أو الأعمدة ولا من أن العبارة ستعمل. استخدم قاعدة بياناتك أو EXPLAIN لذلك.

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

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

هل ينبغي كتابة كلمات SQL المفتاحية بأحرف كبيرة؟

الكلمات المفتاحية في SQL لا تفرّق بين الأحرف الكبيرة والصغيرة في جميع قواعد البيانات الرئيسية، فالأمر مسألة أسلوب فقط. الأحرف الكبيرة تقليدية وشائعة في الوثائق؛ وتفضّل فرق حديثة كثيرة الأحرف الصغيرة. المهم هو الاتساق.

آخر تحديث

تم النسخ إلى الحافظة