Command Palette

Search for a command to run...

SQ

SQL 格式化程式

將 Messy SQL 格式化為可讀取的縮排查詢或將 SQL 縮小為單行

什麼是 SQL 格式化程式?

SQL 格式化程式將密集、單行或編寫不一致的 SQL 轉換為可讀、評論友好的查詢。它將每個主要子句- SELECT、FROM、WHERE、JOINs、GROUP BY、ORDER BY、HAVING、LIMIT、UNION - 放在自己的行上,將SELECT 列分解到單獨的行上,在其子句下縮排和/或條件,並將關鍵字大小寫標準化為上下。結果是程式碼審查中所需的佈局類型:來自 ORM 日誌的 400 個字元的查詢成為您可以掃描缺少連接條件的結構。

作為 SQL 查詢格式化程序,它採用一行,例如選擇前 10 [訂單 ID],從 dbo 開始總計。 [訂單詳細資料] 其中 total > 100 且狀態 = 'open',並在第一行返回 SELECT TOP 10,[訂單 ID] 和 total 在自己的縮排行上,然後從,然後WHERE,其下縮排的AND 條件。 SQL Server 使用者可以將其視為 SSMS 的 SQL 格式化程式:在此線上 SQL 格式化 T-SQL,然後將其貼上回 SQL Server Management Studio。它是一個網頁,而不是 SSMS 擴展,因此無需安裝。

在引擎蓋下,它是真正的代幣化者,而不是一堆尋找和替換的規則。 字串文字(包括雙重引號和反斜線轉義)、雙引號和反向引用標識符、括號內的 SQL 伺服器識別碼、數字、運算子和兩個註解樣式(-- 行和 /* 區塊 */)在做出任何佈局決定之前都被字母縮寫為原子標記。 這意味著像「從使用者」中選擇 * 像「從使用者」中選擇 * 永遠不會被誤認為是子句,格式化可以重組空格,而不會破壞文字內容。

Minify 模式的作用恰恰相反:它將格式化的查詢折疊到一行- 丟棄註釋,逐字節保留每個文字字節- 這對於日誌抓取、將查詢打包到JSON 有效負載或。env 文件以及比較查詢形狀很方便。所有內容都在瀏覽器中運行客戶端,因此包含表格名稱、文字中的客戶資料或模式詳細資訊的生產查詢永遠不會上傳、記錄或儲存在任何地方。

格式化是基於標記器而不是基於正規表示式,因此包含 SQL 關鍵字的字串文字和註解不會像程式碼一樣重新格式化。 方言仍然以任何格式化程式無法解決的方式不同,特別是在引用標識符方面,因此輸出是標準化而不是保證可移植。

如何使用 SQL 格式化程式?

  1. 貼上你的 SQL

    刪除任何查詢 - 來自 ORM 偵錯日誌的單行、手寫報告查詢或由分號分隔的多語句腳本。

  2. 選擇關鍵字 case and indentation

    為關鍵字和 2、4 或 8 個縮排選擇大寫或小寫,以符合您的團隊約定。

  3. 點擊格式或縮小

    格式產生每行輸出的子句,在自己的行和/或條件上縮排的條件下有選定的列。 Minify 將所有內容折疊成一行,刪除註解和未觸及的文字。

  4. 複製或下載

    將結果複製到剪貼簿以獲取程式碼審查或遷移檔案,或將其下載為 .sql 檔案。

主要特點

  • 基於標記的、文字安全

    字串文字、引用的標識符和註解首先被字元化 - 格式化永遠無法更改引號內的資料

  • 條款感知換線

    選擇,從,在哪裡,加入變體,按,按,按,有,限制和聯合每個開始一個新行,子查詢由嵌套深度縮排

  • 關鍵字 case 規範化

    一個綜合關鍵字列表(DML、DDL、函數、類型)轉換為大寫或小寫;標識符完全按照書面形式留下

  • 每行一個選擇列

    逗號分隔的選擇清單突破到單一縮排的行,使得廣泛的查詢在拉取請求中有所不同

Frequently Asked Questions

是的。 Tokenizer 理解兩個方言共享的語法以及它們的引用差異:MySQL 的反斜標識別符和反斜線字串轉義、雙引號標識符、:: casts 和 JSON 運算子,如 PostgreSQL。 支架 [ 來自 SQL Server 的 Identifier] 也被處理。 它不識別的方言特定語句仍然安全格式化,因為未知的標記是通過未觸及的。

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!

sql formatterformat sqlsql beautifiersql pretty printsql minifierformat sql query onlinesql indentationuppercase sql keywordsmysql formatterpostgresql formattersql query formattersql formatter onlineonline sql formattersql formatter for ssms