كيف تستخدم منسّق SQL
- الصق عبارة SQL واحدة أو أكثر في مربع الإدخال.
- اختر لهجة SQL (Dialect) المطابقة لقاعدة بياناتك: SQL القياسية أو MySQL أو PostgreSQL أو SQL Server (T-SQL) أو SQLite أو MariaDB أو BigQuery أو Snowflake أو Oracle PL/SQL.
- اختر حالة أحرف الكلمات المفتاحية: «أحرف كبيرة» أو «أحرف صغيرة» أو «الإبقاء كما هي».
- حدّد حجم المسافة البادئة.
- انقر على تنسيق 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 لمفاتيح أساسية للاختبار.
الأسئلة الشائعة
هل يغيّر التنسيق ما يفعله استعلامي؟
لا. لا يغيّر المنسّق سوى المسافات البيضاء وفواصل الأسطر، وحالة أحرف الكلمات المفتاحية إن اخترت ذلك. أما المعرّفات والنصوص الحرفية ومنطق الاستعلام فتبقى كما هي.
هل يتحقق منسّق SQL من صحة استعلامي؟
ليس بالكامل. هو يحلل الاستعلام إلى رموز ليرتّبه، فقد ينتج مدخل معطوب جدًا ناتجًا غريبًا، لكنه لا يتحقق من وجود الجداول أو الأعمدة ولا من أن العبارة ستعمل. استخدم قاعدة بياناتك أو EXPLAIN لذلك.
هل يمكنني تنسيق عدة عبارات دفعة واحدة؟
نعم. افصل بين العبارات بفواصل منقوطة وستُنسَّق كل واحدة بدورها.
هل ينبغي كتابة كلمات SQL المفتاحية بأحرف كبيرة؟
الكلمات المفتاحية في SQL لا تفرّق بين الأحرف الكبيرة والصغيرة في جميع قواعد البيانات الرئيسية، فالأمر مسألة أسلوب فقط. الأحرف الكبيرة تقليدية وشائعة في الوثائق؛ وتفضّل فرق حديثة كثيرة الأحرف الصغيرة. المهم هو الاتساق.
آخر تحديث