工具說明
關於 SQL 格式化工具
SQL Beautifier 會把壓縮或難讀的 SQL 查詢重新排版成縮排清楚的結構。
適合整理 SELECT、JOIN、WHERE、GROUP BY、ORDER BY 等長語句,也可壓縮成單行供設定或測試使用。
如何使用 SQL Beautifier
- 貼上 SQL 查詢語句。
- 點擊 Format 展開縮排,或點擊 Compress 壓縮成較少空白的單行。
- 格式化後重點檢查 JOIN 條件、WHERE 過濾與括號層級。
常見使用場景
- 閱讀從 logs 複製出來的一行 SQL。
- 提交 PR 前整理長查詢,方便程式碼審查。
- 排查 WHERE 條件優先順序與巢狀 subquery。
SQL 格式化、方言與可讀性
SQL 方言之間函式、引號與分頁語法不同。格式化能提升可讀性,但不會替你判斷查詢語意是否正確。
- 關鍵字換行能讓 SELECT、FROM、JOIN、WHERE 更容易掃描。
- Subquery 縮排有助於看清括號範圍。
- 壓縮 SQL 適合放進 fixture 或單行設定。
SQL 格式化常見問題
- 格式化會改變 SQL 結果嗎?
- 不會。它只調整空白與換行,不應改變查詢語意。
- 支援 MySQL、PostgreSQL、SQLite 嗎?
- 常見語法都適合排版,但方言專有語法仍建議在目標資料庫驗證。
- 輸入會上傳嗎?
- 不會。SQL 格式化在瀏覽器本機執行,不會上傳到 wetool.site。
SQL Beautifier 與 SQL 驗證器
Beautifier 負責排版,不等同於資料庫語法驗證或執行計畫分析。效能問題仍要用目標資料庫的 EXPLAIN 檢查。
SQL 方言遷移檢查清單
格式化能讓 SQL 更可讀,但 MySQL、PostgreSQL、SQLite、SQL Server 的函式、引號與分頁語法仍然不同。
- 字串串接、日期函式、JSON 函式與 LIMIT/OFFSET 是跨資料庫 migration 最常見差異。
- 雙引號、反引號與方括號的意義依 dialect 而異,格式化後仍要按目標資料庫檢查。
- 從 logs 複製 SQL 時,注意參數佔位符可能已被 ORM 替換或省略。
格式化後重點看什麼
SQL Beautifier 不執行查詢,也不會證明查詢安全或高效。它的價值是讓風險點更容易掃描。
- 檢查 JOIN 是否缺少 ON 條件,或 WHERE 條件是否因括號優先順序擴大結果集。
- 檢查 SELECT *、未限制 DELETE/UPDATE、隱式型別轉換與可能的全表掃描。
- 效能問題仍需在目標資料庫用 EXPLAIN / ANALYZE 查看執行計畫。