فرمت‌کننده و مرتب‌ساز SQL

یک کوئری نامرتب را جای‌گذاری کنید و SQL تمیز با تورفتگی یکدست بگیرید. پشتیبانی از 17 گویش، حالت حروف کلیدواژه‌ها و فشرده‌ساز تک‌کلیکی، همه در مرورگر شما.

اجرا در مرورگر شمابدون ثبت‌نامبدون آپلود

SQL قالب‌بندی‌شده

نحوهٔ استفاده از فرمت‌کنندهٔ SQL

  1. یک یا چند دستور SQL را در کادر ورودی جای‌گذاری کنید یا یک فایل .sql باز کنید.
  2. گویش پایگاه داده را انتخاب کنید تا سینتکس آن، مانند castهای ::، [brackets]، بک‌تیک‌ها یا رشته‌های $$، درست تجزیه شود.
  3. حالت حروف کلیدواژه‌ها (UPPER، lower یا حفظ حالت)، تورفتگی و تعداد خطوط خالی بین دستورها را تنظیم کنید.
  4. برای حذف کامنت‌ها و فاصله‌ها برای لاگ‌ها، ORMها یا پارامترهای URL به فشرده‌سازی بروید.
  5. نتیجه را کپی کنید یا به‌صورت فایل .sql دانلود کنید.

چرا SQL را قالب‌بندی کنیم؟

کوئری‌هایی که از لاگ‌های ORM، query planها یا کد برنامه کپی می‌شوند معمولاً یک خط طولانی‌اند. قرار دادن هر بند (SELECT، FROM، JOIN، WHERE، GROUP BY) در خط خودش و تورفتگی ستون‌ها و شرط‌ها منطق را خوانا می‌کند. همچنین diffهای بازبینی کد را کوچک‌تر می‌کند و به شما کمک می‌کند یک شرط join جاافتاده یا یک OR نابه‌جا را پیدا کنید.

قراردادهای سبک SQL

  • کلیدواژه‌های با حروف بزرگ (SELECT، WHERE) سینتکس SQL را از نام جدول‌ها و ستون‌ها جدا می‌کنند. بیشتر راهنماهای سبک این را توصیه می‌کنند، هرچند حروف کوچک در dbt و تیم‌های تحلیل داده رایج است.
  • یک ستون در هر خط باعث می‌شود افزودن یا حذف ستون فقط یک خط diff باشد.
  • تورفتگی یکدست (2 یا 4 فاصله) داخل بندها و زیرکوئری‌ها تودرتویی را در یک نگاه نشان می‌دهد.
  • پایان‌دهندهٔ دستور: هر دستور را با ; تمام کنید تا اسکریپت‌های چنددستوری مبهم نباشند.

گویش‌های SQL پشتیبانی‌شده

Standard SQL، PostgreSQL، MySQL، MariaDB، SQLite، Microsoft SQL Server (T-SQL)، Oracle PL/SQL، Google BigQuery، Snowflake، Amazon Redshift، Spark SQL، Trino/Presto، Hive، IBM Db2، Couchbase N1QL، SingleStore و TiDB. اگر کوئری تجزیه نشد، گویش مشخص‌تری را امتحان کنید: @variables، پارامترهای $1 و عملگرهای خاص هر فروشنده فقط در گویش خودشان شناخته می‌شوند.

فشرده‌ساز چه می‌کند

حالت فشرده‌سازی کامنت‌های --، # و /* */ را حذف می‌کند، فاصله‌ها و شکست خط‌ها را به فاصلهٔ تکی تبدیل می‌کند و فاصله‌های اطراف کاماها و پرانتزها را حذف می‌کند. رشته‌های لفظی و شناسه‌های داخل نقل‌قول ('…'، "…"، `…`، […]، $$…$$) بایت به بایت کپی می‌شوند، بنابراین معنای کوئری هرگز تغییر نمی‌کند.

پرسش‌های متداول

آیا SQL من به سرور ارسال می‌شود؟
خیر. قالب‌بندی با کتابخانهٔ متن‌باز sql-formatter در مرورگر شما انجام می‌شود. کوئری‌هایی که نام جدول، دادهٔ مشتری یا اعتبارنامه دارند روی دستگاه شما می‌مانند.
آیا قالب‌بندی کاری را که کوئری انجام می‌دهد تغییر می‌دهد؟
خیر. فقط فاصله‌ها، شکست خط‌ها و (اگر بخواهید) حالت حروف کلیدواژه‌ها تغییر می‌کنند. شناسه‌ها، رشته‌های لفظی و کامنت‌ها همان‌طور که نوشته شده‌اند حفظ می‌شوند.
چرا روی SQL معتبر خطای تجزیه می‌گیرم؟
احتمالاً کوئری از سینتکس خاص پایگاه دادهٔ دیگری استفاده می‌کند. گویش مطابق را انتخاب کنید، مثلاً PostgreSQL برای castهای ::type یا SQL Server برای نام‌های [bracketed] و @params.
آیا می‌توانم چند دستور را یکجا قالب‌بندی کنم؟
بله. دستورها را با نقطه‌ویرگول جدا کنید. می‌توانید تعیین کنید چند خط خالی در خروجی بین آن‌ها قرار گیرد.
آیا حالت حروف کلیدواژه‌ها نام ستون‌های من را تغییر می‌دهد؟
خیر. فقط کلیدواژه‌های رزروشده، نوع‌های داده و توابع داخلی تغییر حالت می‌دهند. نام جدول‌ها و ستون‌ها املای اصلی خود را حفظ می‌کنند.

ابزارهای مرتبط