01
1. 為什麼要格式化 SQL
當 JOIN 越來越多時,單行 SQL 或 ORM 產生的 SQL 會變得難以閱讀。將它依子句切分為 SELECT、FROM、WHERE、JOIN、GROUP BY、ORDER BY 等,並維持一致縮排,就能立刻看出哪些資料表以什麼條件連接,以及 WHERE 在篩選什麼,讓程式碼審查與除錯更有效率。
依語法子句將 SQL 查詢換行並縮排,提升可讀性;也可壓縮成單行,方便記錄或儲存。關鍵字大寫可自由切換。
當 JOIN 越來越多時,單行 SQL 或 ORM 產生的 SQL 會變得難以閱讀。將它依子句切分為 SELECT、FROM、WHERE、JOIN、GROUP BY、ORDER BY 等,並維持一致縮排,就能立刻看出哪些資料表以什麼條件連接,以及 WHERE 在篩選什麼,讓程式碼審查與除錯更有效率。
系統會在主要子句前插入換行(SELECT/FROM/WHERE/JOIN 變體/GROUP BY/ORDER BY/HAVING/LIMIT 等),並將 AND/OR 向內縮排一層,以區分各個條件。以逗號分隔的欄位清單會各自獨立成行,而括號內的內容(例如子查詢)則會多一層縮排。這是以 token 為基礎的格式化工具,不是完整的 SQL 解析器,因此過度巢狀的子查詢或特定資料庫的語法,在格式化後可能還需要手動微調。
壓縮會移除註解,並將不必要的空白與換行收斂成單行。適合用來記錄查詢、縮小預存程序或遷移腳本的大小,或把單行 SQL 貼到其他工具中。字串字面值中的內容(加引號的值)會完整保留,因此你的資料值不會被更動。