使用方式
- 貼上一或多個 SQL 陳述式,或按一下「試用範例」。
- 選擇資料庫的方言,讓工具能辨識對應的關鍵字、引號和運算子。
- 設定關鍵字大小寫和縮排。您輸入時,格式化後的查詢會顯示在右側。
- 按一下「最小化」取得單行版本,然後複製結果或下載為 .sql 檔案。
運作方式
格式化功能使用開放原始碼的 sql-formatter 函式庫。它會依照您選擇的方言規則,將查詢拆分成語法詞元,並將各個主要子句(SELECT、FROM、JOIN、WHERE、GROUP BY、ORDER BY…)各自放在一行、縮排列清單和條件,並套用您選擇的關鍵字大小寫。它會變更空白字元,以及您有選擇時的關鍵字大小寫;識別項、字串常值和註解則會保留。選擇正確的方言很重要:例如,MySQL 使用反引號括住名稱,SQL Server 使用方括號,而 PostgreSQL 使用 $$ 開始函式主體。
格式化工具只負責排版,不是資料庫。它不會檢查資料表或欄位是否存在,也不會驗證完整語法,因此有些無效的 SQL 仍可能順利格式化。若工具無法解析輸入內容(例如括號未閉合),就會指出停止的位置及行號、欄號。
最小化的運作方式不同:它會保留所有詞元,只將連續的空白字元縮減為一個空格,並移除註解(會保留最佳化器提示,例如 /*+ INDEX(t) */,以及 MySQL /*! … */ 註解,因為它們會改變執行行為)。字串、加引號的識別項和美元引號括住的主體都會原樣複製。若引號或註解未閉合,最小化會顯示錯誤並停止,而不會自行猜測。
範例
閱讀記錄中的查詢
慢速查詢記錄中有一行長達 400 個字元。使用 MySQL 方言並將關鍵字轉為大寫後,內容會整理成易讀的區塊,每個 JOIN 和 WHERE 條件各自占一行,讓您更容易找出缺少的索引。
統一程式碼審查風格
團隊會在提交前,使用 PostgreSQL 方言、小寫關鍵字和 4 格縮排格式化每個遷移檔,讓差異比對只顯示實際變更。
在程式碼中嵌入 SQL
最小化功能會將多行且含註解的報表查詢轉成單行,例如 SELECT id, name FROM users WHERE active = 1 ORDER BY name,方便貼到指令碼的字串中。
常見問題
支援哪些資料庫?
Standard SQL、MySQL、MariaDB、PostgreSQL、SQLite、SQL Server (T-SQL)、Oracle PL/SQL、BigQuery、Snowflake、Redshift、Spark SQL、Hive、Trino/Presto、DuckDB、IBM Db2、SingleStoreDB、TiDB 和 Couchbase N1QL。
格式化會改變查詢的執行結果嗎?
不應該會:只有空白字元,以及您選擇時的關鍵字大小寫會改變。SQL 關鍵字不區分大小寫。不過,將產生的輸出用於正式環境資料前,仍請先檢查,尤其是使用特殊方言功能時。
為什麼會出現「無法格式化」?
詞法分析器遇到無法解析的內容,通常是未閉合的括號或引號,或是其他方言的語法。請檢查錯誤訊息中的行號和欄號,並確認所選方言符合您的資料庫。
它會驗證我的 SQL 嗎?
不會。此工具未連接資料庫,也無法取得您的結構描述。查詢即使能格式化,執行時仍可能失敗。
隱私權
您的 SQL 會在瀏覽器中使用 JavaScript 格式化,不會上傳、儲存或納入分析資料,工具也不會連接資料庫。