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 在本地完成,你输入、粘贴或上传的任何内容都不会发送到我们的服务器。

本页内容由英文自动翻译而来,如发现错误,欢迎告诉我们。