درباره این ابزار
پرس و جوهای SQL به سرعت طولانی و پیچیده می شوند - در بسیاری از جداول، پرس و جوهای فرعی تو در تو، عبارات بزرگ WHERE با شرایط بسیار، عبارات CASE پیچیده می پیوندد. SQL فشرده که در چند خط فشرده شده است، قابل خواندن نیست. SQL با تورفتگی مناسب با حروف بزرگ، ساختار پرس و جو را در یک نگاه قابل مشاهده می کند. قالب بندی تفاوت بین پرس و جوی است که می توانید اشکال زدایی کنید و درخواستی که نمی توانید.
این قالبکننده SQL را تجزیه میکند و خروجی تورفتگی و با حروف مناسب منتشر میکند. کلمات کلیدی SQL (SELECT، FROM، WHERE، JOIN، GROUP BY) معمولاً با حروف بزرگ هستند، نام جدول و ستون با منبع مطابقت دارد، و تورفتگی نشان دهنده تورفتگی است (پرس و جوهای فرعی داخل والدینشان، شاخه های CASE تورفتگی دارند). پشتیبانی از چندین گویش تفاوت های MySQL، PostgreSQL، SQL Server، Oracle و SQLite را مدیریت می کند.
قالب بندی غیر مخرب است - پرس و جو قالب بندی شده از نظر عملکردی با ورودی یکسان است. فقط فضای خالی و حروف تغییر می کند.
چرا SQL را فرمت کنید
خواندن SQL متراکم بدون قالب از نظر ذهنی مشکل است. وقتی همه چیز در چند خط باشد، شناسایی شرایط متعلق به کدام JOIN، شروع و پایان پرس و جوهای فرعی و نحوه ارتباط شاخههای CASE سختتر میشود. SQL فرمتشده سریعتر خوانده میشود و اشکالات ناشی از ساختار نادرست خواندن را کاهش میدهد.
به ویژه مزایای بررسی کد. بازبینها میتوانند به سرعت درک کنند که یک پرسوجو هنگام قالببندی چه میکند. خواندن SQL فرمت نشده در حین بازبینی، رد شدن یا مهر زنی را تشویق می کند. SQL قالببندی شده نیز در هنگام تغییر کوئریها، تفاوتهای معناداری ایجاد میکند.
جزئیات فنی
تجزیه SQL نیاز به درک گویش دارد زیرا پایگاه داده های مختلف گرامر را به روش های مختلف گسترش می دهند. فرمتکننده معمولاً از یک نشانهساز برای شناسایی کلمات کلیدی، شناسهها، حروف اللفظی و علائم نگارشی استفاده میکند، سپس خروجیهایی را با قوانین فضای خالی و تورفتگی بین نشانهها تولید میکند.
قوانین تورفتگی: SELECT، FROM، WHERE، GROUP BY، ORDER BY هر کدام در خط خودشان. جداول به هم پیوسته در خطوط بعدی که در زیر FROM تورفتگی دارند. شرایط در WHERE در خطوط جداگانه برای خوانایی. پرسشهای فرعی در بلوکهای فرورفته خودشان.
قراردادهای موردی: کلمات کلیدی با حروف بزرگ (SELECT، FROM، WHERE) رایج ترین هستند. برخی از تیم ها حروف کوچک را ترجیح می دهند. شناسه ها (نام جدول و ستون) حروف منبع را حفظ می کنند.
سوالات متداول
- آیا قالب بندی رفتار پرس و جو را تغییر می دهد؟
- نه. قالببندی SQL فقط فضای خالی، شکستههای خط و حروف کلید واژه را تنظیم میکند. منطق پرس و جو، طرح اجرا و نتایج یکسان باقی می مانند. این صرفاً یک بهبود خوانایی است.
- کدام گویش های SQL پشتیبانی می شوند؟
- این ابزار از SQL استاندارد و گویش های خاص پشتیبانی می کند: MySQL، PostgreSQL، SQLite، SQL Server (T-SQL)، و Oracle PL/SQL. کلمات کلیدی و عملکردهای خاص گویش به درستی تشخیص داده می شوند.
- آیا به سوالات فرعی و CTE رسیدگی می کند؟
- بله. عبارات جدول مشترک (با بندها)، سوالات فرعی تو در تو، توابع پنجره، و زنجیره های پیچیده JOIN با سطوح تورفتگی مناسب قالب بندی می شوند.
- آیا می توانم از این برای رویه های ذخیره شده استفاده کنم؟
- فرمتکننده به بهترین وجه بیانیههای SQL را مدیریت میکند. رویهها، محرکها و توابع چند حالتی ممکن است کار کنند، اما قالببندی منطق رویهای پیچیده (IF/ELSE، حلقهها) به گویش بستگی دارد.
- کلمات کلیدی باید بزرگ باشند یا کوچک؟
- کنوانسیون متفاوت است. کلمات کلیدی بزرگ سنتی و رایج هستند. حروف کوچک در راهنماهای سبک مدرن در حال پذیرش است. یکی را انتخاب کنید و در پایگاه کد ثابت بمانید.
- آیا رویه های ذخیره شده را قالب بندی می کند؟
- اکثر فرمتکنندهها نحو رویههای ذخیرهشده را مدیریت میکنند (CREATE PROCEDURE، بلوکهای BEGIN/END، کنترل جریان). پسوندهای خاص گویش ممکن است تا حدی پشتیبانی شوند.
- آیا SQL من آپلود شده است؟
- نه. قالب بندی در مرورگر شما انجام می شود.
- آیا می توانم از خط فرمان فرمت کنم؟
- چندین قالبکننده SQL ابزارهای CLI (sqlfluff، sql-formatter) را ارائه میدهند. از آنها برای قالب بندی دسته ای یا ادغام CI استفاده کنید. فرمتکنندههای مرورگر برای استفاده موقتی و یکباره هستند.