免費轉換器

SQL 查詢 格式化與高亮

在瀏覽器中即時格式化、美化和語法高亮SQL查詢。免費、安全,無需上傳。

拖放 .sql 檔案到此處

或在下方貼上SQL查詢

關於此工具

SQL 查詢很快就會變得又長又複雜——跨多個表的聯結、巢狀子查詢、具有許多條件的大型 WHERE 子句、複雜的 CASE 表達式。緊湊的 SQL 塞滿幾行是不可讀的;正確縮排的 SQL 且大小寫一致,使查詢結構一目了然。格式化是可以調試的查詢和不能調試的查詢之間的區別。

此格式化程式解析 SQL 並發出縮排的、大小寫正確的輸出。 SQL 關鍵字(SELECT、FROM、WHERE、JOIN、GROUP BY)通常為大寫,表名和列名與來源匹配,縮排反映嵌套(子查詢在其父查詢內縮進,CASE 分支縮排)。多種方言支援可處理 MySQL、PostgreSQL、SQL Server、Oracle 和 SQLite 差異。

格式化是非破壞性的-格式化的查詢在功能上與輸入相同。僅空格和大小寫發生變化。

為什麼要格式化 SQL

閱讀密集的、未格式化的 SQL 是一件很費腦力的事情。當所有內容都在幾行上時,確定哪些條件屬於哪些 JOIN、子查詢從哪裡開始和結束以及 CASE 分支如何關聯都變得更加困難。格式化的 SQL 讀取速度更快,並減少誤讀結構帶來的錯誤。

程式碼審查尤其受益。審閱者可以快速掌握查詢格式化後的功能;在審閱期間閱讀未格式化的 SQL 會鼓勵跳過或橡皮圖章。當查詢發生變更時,格式化的 SQL 也會產生有意義的差異。

使用方法

貼上查詢,點擊格式。

  1. 貼上您的 SQL: 將查詢放入輸入區域。單語句或多語句輸入都可以。
  2. 選擇方言: 預設是通用 SQL。選擇 MySQL、PostgreSQL、SQL Server 或 Oracle 進行特定於方言的關鍵字辨識。
  3. 配置選項: 縮寫大小(通常為 2 或 4 個空格)、關鍵字大小寫(大寫是最常見的,小寫是一些團隊的偏好)、逗號位置(尾隨或前導)。
  4. 格式: 格式化的輸出立即出現。複製或下載使用。

常見用例

技術細節

SQL 解析需要理解方言,因為不同的資料庫以不同的方式擴展語法。格式化程式通常使用標記器來識別關鍵字、識別碼、文字和標點符號,然後產生具有標記之間的空格和縮排規則的輸出。

縮排規則:SELECT、FROM、WHERE、GROUP BY、ORDER BY 各佔一行。後續行中的連接表在 FROM 下縮排。為了便於閱讀,WHERE 中的條件位於單獨的行上。子查詢位於自己的縮排區塊中。

大小寫約定:關鍵字大寫(SELECT、FROM、WHERE)最常見。有些團隊更喜歡小寫。標識符(表名和列名)保留來源大小寫。

最佳實踐

常見問題

格式化會改變查詢行為嗎?
不會。 SQL 格式化僅調整空格、換行符號和關鍵字大小寫。查詢邏輯、執行計劃和結果保持不變。這純粹是可讀性的改進。
支援哪些 SQL 方言?
此工具支援標準 SQL 和特定方言:MySQL、PostgreSQL、SQLite、SQL Server (T-SQL) 和 Oracle PL/SQL。方言特定的關鍵字和功能可以正確辨識。
它是否處理子查詢和 CTE?
是的。公用表表達式(WITH 子句)、巢狀子查詢、視窗函數和複雜的 JOIN 鏈均採用適當的縮排層級進行格式化。
我可以將其用於預存程序嗎?
格式化程式最適合處理單一 SQL 語句。多語句過程、觸發器和函數可能有效,但複雜的過程邏輯(IF/ELSE、循環)格式取決於方言。
關鍵字應該大寫還是小寫?
約定各不相同。大寫關鍵字是傳統且常見的。小寫字母正在現代風格指南中被採用。選擇一個並在程式碼庫中保持一致。
它會格式化儲存過程嗎?
大多數格式化程式處理預存程序語法(CREATE PROCEDURE、BEGIN/END 區塊、控制流程)。可能部分支援特定於方言的擴展。
我的 SQL 上傳了嗎?
不會。格式化發生在您的瀏覽器中。
我可以從命令列格式化嗎?
一些 SQL 格式化程式提供 CLI 工具(sqlfluff、sql-formatter)。使用它們進行批量格式化或 CI 整合。瀏覽器格式化程序僅供暫時一次性使用。