Utilo

SQL 格式化與方言轉換

美化 SQL 語句,並在 MySQL、PostgreSQL、SQLite 和 SQL Server 之間轉換語法:識別符號引號、LIMIT/TOP/OFFSET、自增列、資料型別和常用函式。

這個SQL格式化器的功能

這個工具有兩種功能。首先,它格式化SQL:每行一個句子,一致的插入,大小字母的關鍵字和可讀的JOIN和CASE塊,使用經過測試的sql-formatter引擎,具有方言感知解析。其次,它在 MySQL,PostgreSQL,SQLite 和 SQL Server 之間執行 基本方言轉換,在資料庫之間移動查詢或模式時處理最常見的差異。它們都在本地執行,因此包含真正表名的生產查詢永遠不會離開瀏覽器。

使用方法

  1. 在輸入中貼上SQL。
  2. 選擇源方言,如果要轉換,選擇目標方言。讓目標是"保持"只格式化。
  3. 選擇關鍵字案例和插槽寬度。
  4. 檢視筆記板:任何轉換器無法安全地翻譯的東西都列出在那裡。
  5. 複製結果。

轉換器處理的內容

  • 識別符號引用: `name` (MySQL) ↔ "name" (PostgreSQL/SQLite) ↔ [name] (SQL伺服器)
  • 行限制: LIMIT n OFFSET m TOP n OFFSET m ROWS FETCH NEXT n ROWS ONLY。
  • 自動增加: AUTO_INCREMENT SERIAL/GENERATED ... AS IDENTITY AUTOINCREMENT IDENTITY(1,1)。
  • 常見型別:DATETIME/TIMESTAMP,TINYINT(1)/BOOLEAN/BIT,NVARCHAR,TEXT,BLOB/BYTEA/VARBINARY(MAX)。
  • 功能: NOW()/GETDATE()/CURRENT_TIMESTAMP,IFNULL/ISNULL/COALESCE,RAND()/RANDOM(),CONCAT ||。
  • 字串字母和評論是受保護的,因此'quotes'中的關鍵字永遠不會被重寫。

限制

方言轉換是基於模式的,不是一個完整的編譯器。儲存的程式,觸發器,供應商特定的功能 (視窗框架奇怪,JSON運算子,MERGE,ON DUPLICATE KEY和ON CONFLICT) 和排序細節需要手動審查。將輸出視為一個強大的初稿,並對目標資料庫進行測試。

常見問題

格式化是否會改變我的查詢?

沒有。格式化只會改變空白空間和關鍵字大小。識別符號和字母都沒有被觸及。

可以格式化多個語句嗎?

沒有。每個語句都是單獨格式化的。

為什麼我的查詢沒有完全轉換?

一些構造沒有直接等效。需要注意的事情。

我的SQL已經上傳了嗎?

沒有。格式化和轉換完全在瀏覽器中執行。

安全。所有處理都透過 JavaScript、Web Worker 和瀏覽器 API 在本地完成,你輸入、貼上或上傳的任何內容都不會傳送到我們的伺服器。

本頁內容由英文自動翻譯而來,如發現錯誤,歡迎告訴我們。