🌐 ZH-TW

🗄️ SQL 格式化工具

將通用SQL依子句換行並縮排。支援的SQL可以壓縮成一行;壓縮時會刪除註解。關鍵字是否轉為大寫可自行選擇。

範例

此工具會格式化SQL,但不會驗證SQL、確認資料庫特定的相容性或核實查詢含義。

SQL僅在此裝置上處理。

指南

瞭解更多

01

1. 為什麼要格式化 SQL

當 JOIN 越來越多時,單行 SQL 或 ORM 產生的 SQL 會變得難以閱讀。將它依子句切分為 SELECT、FROM、WHERE、JOIN、GROUP BY、ORDER BY 等,並維持一致縮排,就能立刻看出哪些資料表以什麼條件連接,以及 WHERE 在篩選什麼,讓程式碼審查與除錯更有效率。

02

2. 這個工具怎麼格式化

格式化器會在SELECT、FROM、WHERE和JOIN等子句前換行,並將AND和OR縮排一層,以區分不同條件。以逗號分隔的清單會分別放在獨立的行上,括號內的內容會再增加一層縮排。它是以標記為基礎的格式化器,不是SQL驗證器,也不是能解析所有方言的剖析器。對於具名參數或廠商專用常值等無法安全保留的語法,它會顯示錯誤。如果出現這種情況,請不要修改查詢,而是使用支援該語法的SQL工具處理原始查詢。

03

3. 壓縮與使用時機

壓縮會移除註解,並將不必要的空白與換行收斂成單行。適合用來記錄查詢、縮小預存程序或遷移腳本的大小,或把單行 SQL 貼到其他工具中。字串字面值中的內容(加引號的值)會完整保留,因此你的資料值不會被更動。

常見問題

它支援所有 SQL 方言嗎(MySQL、PostgreSQL、Oracle 等)?
不是。這個工具不是SQL驗證器,也不是針對各個方言的剖析器。它可以整理常見的SQL標記和JOIN形式,但對於具名參數、廠商專用常值等無法安全保留的語法,不會繼續處理,而是顯示錯誤。遇到這種情況,請不要修改查詢,在資料庫或支援該語法的SQL工具中使用原始查詢。
它會把字串中的 SQL 關鍵字也轉成大寫嗎?
不會。用引號包住的字串字面值('...', "...", `...`)在 token 化時會被獨立辨識,並排除在大小寫轉換與換行邏輯之外。
我的查詢會送到伺服器嗎?
不會。格式化與壓縮都完全在你的瀏覽器中完成,從不會送到伺服器。
我可以調整縮排寬度嗎?
可以,從縮排下拉選單中選擇 2 或 4 個空格。