讓 SQL 更易讀
從 log 複製、由 ORM 產生或匆忙寫下的 SQL 查詢,往往會擠成冗長的一行,不僅難以閱讀,除錯更是困難。這款 SQL 格式化工具能將您的查詢拆分成清晰的子句 — SELECT、FROM、JOIN、WHERE、GROUP BY、ORDER BY — 讓每個欄位與條件獨立成行,並對子查詢與 CASE 表達式進行一致的縮排。排版後的結果不僅更容易審查、在版本控制中進行比對,也方便與同事分享。
功能特色
- 支援 12 種 SQL 方言:從標準 SQL 到 MySQL、PostgreSQL、SQL Server、Oracle、BigQuery 與 Snowflake。
- 關鍵字大小寫:大寫 (UPPER)、小寫 (lower) 或維持原樣;適用於關鍵字、資料型別與函式。
- 縮排:支援 2 個空格、4 個空格或 Tab 鍵。
- 多個 SQL 語句:支援以分號分隔的多句查詢。
- 保留註解:包含
--單行註解與/* */區塊註解。 - 複製或下載:可直接複製結果,或下載為
.sql檔案。 - 注重隱私:格式化過程完全在您的瀏覽器本地端執行。
排版前後對比
原本的查詢語法:
select u.id, u.name, count(o.id) as orders from users u left join orders o on o.user_id = u.id where u.status = 'active' group by u.id, u.name order by orders desc;
排版後:
SELECT
u.id,
u.name,
COUNT(o.id) AS orders
FROM
users u
LEFT JOIN orders o ON o.user_id = u.id
WHERE
u.status = 'active'
GROUP BY
u.id,
u.name
ORDER BY
orders DESC;
SQL 風格建議
- 每個子句獨立一行。 將每個主要子句換行,能讓查詢結構一目了然。
- 使用有意義的別名。 在簡短的查詢中,使用
u和o這類簡短別名沒問題,但在長篇報表中,具描述性的別名會更有幫助。 - 明確標示欄位名稱:在進行 JOIN 時(使用
orders.user_id而不是user_id),以避免產生歧義。 - 保持格式一致:在整個專案中維持一致的排版,這樣在看差異比對 (diff) 時,才能看出真正的修改,而不是空白字元的變動。
相關工具
需要處理查詢結果嗎?您可以使用 CSV 轉 JSON 轉換匯出的資料、使用 JSON 格式化工具 美化 API 回應,或是透過 差異比對工具 來比較兩個版本的查詢語法。