功能介紹
SQL 格式化工具能把一長串寫在同一行的查詢,整理成易讀、縮排一致的格式。每個子句(SELECT、FROM、WHERE、GROUP BY、ORDER BY)各自從新的一行開始,選取的欄位和條件每行列一個,JOIN 會對齊在它所連接的資料表下方,子查詢則在括號內縮排。
格式化後的 SQL 在 pull request 中更容易審查,查詢回傳錯誤資料列時更容易除錯,貼到文件裡也更清楚。從 ORM 日誌或應用程式錯誤訊息中複製出來、全部擠在一行的查詢,也能一下子變得好讀。
使用方式
- 把一或多個 SQL 陳述式貼到 輸入 框、拖曳
.sql檔案進來,或按 範例。 - 選擇資料庫的 方言。
- 選擇 關鍵字 要大寫、小寫,或保持輸入時的樣子。
COUNT等函式名稱也套用同樣的設定。 - 縮排 可選 2 個空格、4 個空格或 Tab。
- 複製結果,或下載成
.sql檔案。快速鍵:Ctrl/Cmd+Enter 格式化,Ctrl/Cmd+Shift+C 複製。
以分號分隔的多個陳述式之間會以空行隔開,註解保留在原本的位置。
範例
select u.id, count(o.id) as orders from users u left join orders o on o.user_id = u.id group by u.id
會變成
SELECT
u.id,
COUNT(o.id) AS orders
FROM
users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY
u.id
小提示
關鍵字大寫能讓子句從資料表和欄位名稱中凸顯出來,這也是團隊最常見的慣例。如果你的團隊習慣寫小寫 SQL,選擇小寫,整段查詢就會一致。如果格式化工具回報非預期的 token,請確認方言是否選對:例如以反引號括住的名稱在 MySQL 中合法,但在標準 SQL 中不合法。
常見問題
› 我的 SQL 會被傳送到伺服器嗎?
不會。格式化工具在你的瀏覽器中執行,所以會透露資料表名稱、客戶資料或商業邏輯的查詢,都只留在你的裝置上。
› 支援哪些 SQL 方言?
標準 SQL、MySQL、MariaDB、PostgreSQL、SQLite、SQL Server(T-SQL)、Oracle(PL/SQL)、BigQuery、Snowflake、Redshift 和 Spark SQL。選對方言有助於處理特定方言的語法,例如反引號識別字、:: 型別轉換或方括號名稱。
› 格式化會改變查詢的行為嗎?
不會。只有空白,以及(若你選擇的話)關鍵字和函式名稱的大小寫會改變。識別字、字串常值和註解都會完全保持原樣。
› 為什麼會出現「Unexpected end of input」?
通常是某個括號或引號沒有閉合。錯誤會指向查詢的結尾;請找出最後一個沒有配對的 ( 或 '。