نحوه استفاده
- یک یا چند دستور SQL را جایگذاری کنید یا روی «یک نمونه را امتحان کنید» بزنید.
- گویش پایگاهداده خود را انتخاب کنید تا کلمات کلیدی، نحوه نقلقول و عملگرهای آن شناسایی شوند.
- حروف بزرگ/کوچک کلمات کلیدی و تورفتگی را تنظیم کنید. کوئری قالببندیشده همزمان با تایپ شما در سمت راست نمایش داده میشود.
- برای نسخه تکخطی روی «فشردهسازی» بزنید؛ سپس نتیجه را کپی کنید یا آن را بهصورت فایل .sql دانلود کنید.
نحوه کار
قالببندی با کتابخانه متنباز sql-formatter انجام میشود. این ابزار پرسوجو را با قواعد گویشی که انتخاب میکنید به نشانهها تقسیم میکند، هر عبارت اصلی (SELECT، FROM، JOIN، WHERE، GROUP BY، ORDER BY و …) را در خط جداگانه میگذارد، فهرست ستونها و شرایط را تورفتگی میدهد و بزرگی/کوچکی حروف کلیدواژهها را اعمال میکند. این ابزار فاصلههای سفید و در صورت انتخاب شما، بزرگی/کوچکی حروف کلیدواژهها را تغییر میدهد؛ شناسهها، رشتههای متنی و کامنتها حفظ میشوند. انتخاب گویش مناسب اهمیت دارد: برای مثال، در MySQL نامها با بکتیک نقلقول میشوند، در SQL Server با کروشه، و در PostgreSQL علامت $$ شروع بدنه تابع است.
فرمتکننده یک ابزار چیدمان است، نه پایگاه داده. بررسی نمیکند که جدولها یا ستونها وجود دارند یا نه و کل گرامر را اعتبارسنجی نمیکند؛ بنابراین برخی دستورهای SQL نامعتبر بدون اخطار قالببندی میشوند. وقتی نتواند ورودی را درک کند — برای مثال پرانتز بستهنشده — خط و ستونی را که در آن متوقف شده گزارش میدهد.
فشردهسازی (Minify) متفاوت عمل میکند: همه نشانهها را نگه میدارد و فقط هر دنباله فاصله سفید را به یک فاصله تبدیل میکند و کامنتها را حذف میکند (نکتههای بهینهساز مانند /*+ INDEX(t) */ و کامنتهای /*! … */ مربوط به MySQL حفظ میشوند، زیرا رفتار را تغییر میدهند). رشتهها، شناسههای نقلقولشده و بدنههای نقلقولشده با دلار بدون تغییر کپی میشوند. اگر یک نقلقول یا کامنت بسته نشود، فشردهسازی بهجای حدسزدن با خطا متوقف میشود.
نمونهها
خواندن یک کوئری از لاگ
یک لاگ پرسوجوی کند یک خط ۴۰۰ نویسه را نشان میدهد. با گویش MySQL و کلیدواژههای بزرگ، به بلوکی خوانا تبدیل میشود که در آن هر شرط JOIN و WHERE در خط جداگانهای قرار میگیرد و شناسایی ایندکس گمشده را آسان میکند.
سبک یکنواخت برای بازبینی کد
یک تیم هر مایگریشن را پیش از commit با گویش PostgreSQL، کلمات کلیدی با حروف کوچک و تورفتگی ۴ فاصلهای قالببندی میکند تا diffها فقط تغییرات واقعی را نشان دهند.
جاسازی SQL در کد
فشردهسازی یک کوئری گزارش چندخطی و دارای کامنت را به یک خط تبدیل میکند؛ مانند SELECT id, name FROM users WHERE active = 1 ORDER BY name، آماده برای جایگذاری در یک رشته در اسکریپت.
پرسشهای متداول
کدام پایگاهدادهها پشتیبانی میشوند؟
Standard SQL، MySQL، MariaDB، PostgreSQL، SQLite، SQL Server (T-SQL)، Oracle PL/SQL، BigQuery، Snowflake، Redshift، Spark SQL، Hive، Trino/Presto، DuckDB، IBM Db2، SingleStoreDB، TiDB و Couchbase N1QL.
آیا قالببندی رفتار کوئری من را تغییر میدهد؟
این ابزار نباید رفتار کوئری را تغییر دهد: فقط فاصلههای خالی و در صورت انتخاب، بزرگی/کوچکی کلمات کلیدی تغییر میکند. بزرگی یا کوچکی حروف کلمات کلیدی در SQL مهم نیست. با این حال، خروجی تولیدشده را پیش از اجرا روی دادههای production بررسی کنید، بهویژه برای ویژگیهای نامعمول گویش.
چرا پیام “could not be formatted” را گرفتم؟
توکنساز به چیزی برخورد که نمیتوانست آن را پردازش کند؛ معمولاً یک براکت یا علامت نقلقول بستهنشده یا نحوی از یک گویش متفاوت. خط و ستون را در پیام بررسی کنید و مطمئن شوید گویش انتخابی با پایگاهداده شما مطابقت دارد.
آیا SQL من را اعتبارسنجی میکند؟
خیر. این ابزار به پایگاهداده متصل نیست و schema شما را نمیشناسد. یک کوئری ممکن است قالببندی شود اما هنگام اجرا با خطا مواجه شود.
حریم خصوصی
SQL شما با JavaScript در مرورگر خودتان قالببندی میشود. این داده بارگذاری یا ذخیره نمیشود و در تحلیلها به کار نمیرود؛ این ابزار همچنین هرگز به پایگاهداده متصل نمیشود.