什麼是 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 格式化程式?
貼上你的 SQL
刪除任何查詢 - 來自 ORM 偵錯日誌的單行、手寫報告查詢或由分號分隔的多語句腳本。
選擇關鍵字 case and indentation
為關鍵字和 2、4 或 8 個縮排選擇大寫或小寫,以符合您的團隊約定。
點擊格式或縮小
格式產生每行輸出的子句,在自己的行和/或條件上縮排的條件下有選定的列。 Minify 將所有內容折疊成一行,刪除註解和未觸及的文字。
複製或下載
將結果複製到剪貼簿以獲取程式碼審查或遷移檔案,或將其下載為 .sql 檔案。
主要特點
基於標記的、文字安全
字串文字、引用的標識符和註解首先被字元化 - 格式化永遠無法更改引號內的資料
條款感知換線
選擇,從,在哪裡,加入變體,按,按,按,有,限制和聯合每個開始一個新行,子查詢由嵌套深度縮排
關鍵字 case 規範化
一個綜合關鍵字列表(DML、DDL、函數、類型)轉換為大寫或小寫;標識符完全按照書面形式留下
每行一個選擇列
逗號分隔的選擇清單突破到單一縮排的行,使得廣泛的查詢在拉取請求中有所不同
Frequently Asked Questions
Related Tools
CSS Minifier & Beautifier
Minify CSS to cut file size or beautify minified stylesheets for debugging
HTML Minifier & Beautifier
Minify HTML markup for faster page loads or beautify it for readable, indented source
JSON to SQL Converter
Convert a JSON array of objects into SQL CREATE TABLE and INSERT statements for MySQL, PostgreSQL, or SQLite. Infers types, runs client-side.
JSON to TOML Converter
Convert JSON to TOML 1.0. Objects become tables, arrays of objects become arrays of tables, and everything is rendered inline where TOML expects it.
Comments
0 comments
No comments yet. Be the first to share your thoughts!