فرمتکننده و مرتبساز SQL
یک کوئری نامرتب را جایگذاری کنید و SQL تمیز با تورفتگی یکدست بگیرید. پشتیبانی از 17 گویش، حالت حروف کلیدواژهها و فشردهساز تککلیکی، همه در مرورگر شما.
اجرا در مرورگر شمابدون ثبتنامبدون آپلود
نحوهٔ استفاده از فرمتکنندهٔ SQL
- یک یا چند دستور SQL را در کادر ورودی جایگذاری کنید یا یک فایل
.sqlباز کنید. - گویش پایگاه داده را انتخاب کنید تا سینتکس آن، مانند castهای
::،[brackets]، بکتیکها یا رشتههای$$، درست تجزیه شود. - حالت حروف کلیدواژهها (UPPER، lower یا حفظ حالت)، تورفتگی و تعداد خطوط خالی بین دستورها را تنظیم کنید.
- برای حذف کامنتها و فاصلهها برای لاگها، ORMها یا پارامترهای URL به فشردهسازی بروید.
- نتیجه را کپی کنید یا بهصورت فایل
.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 معتبر خطای تجزیه میگیرم؟
::type یا SQL Server برای نامهای [bracketed] و @params.