Formateador de SQL
Una sentencia o un guion entero, embellecido con un clic · 18 dialectos de bases de datos · registro de palabras clave y sangrado configurables
格式化选项
输入 SQL
格式化结果
这个工具做什么、不做什么
只调整排版,不改语义。格式化只改空白、换行与关键字大小写:字符串字面量与注释里的内容一个字符都不动,不重命名标识符、不增删括号、不合并或拆分语句。因此格式化后的 SQL 与原 SQL 的语义一致(可用「去掉多余空白」再对比验证)。
不会修复语法错误。SQL 本身写错时(少了右括号、引号没闭合、关键字拼错),格式化会直接失败并给出「第几行第几列附近」的位置,而不是猜你的意思去补全。报错信息来自 sql-formatter 的解析器,本页把它整理成中文位置提示。
「去掉多余空白」不是压缩器。它把字符串与注释之外的连续空白压成一个空格(可选移除注释),不缩短标识符、不去括号、不做任何语法级压缩。字符串里的空格、注释里的换行都原样保留;勾选「移除注释」才会删除注释。
方言影响关键字识别与引号/注释规则。本页基于 sql-formatter 15.4.11,可选 18 种方言(另有 transactsql 的别名 tsql 未单列)。选错一般不会报错,但排版可能与预期不同(例如把 PostgreSQL 的 :: 类型转换当成普通符号);拿不准就用「标准 SQL」。
Preguntas frecuentes
No reescribe a nivel de sintaxis. El formato solo ajusta espacios, saltos y mayúsculas de palabras clave: no renombra identificadores, no añade ni quita paréntesis, no toca el contenido de literales, y ni un espacio dentro de cadenas o comentarios se mueve. La otra cara: tampoco remienda errores de sintaxis - si el SQL está mal (falta un paréntesis de cierre, una comilla sin cerrar) falla en seco y da línea y columna, en vez de adivinar qué querías decir y completarlo por ti.
Medido sobre sql-formatter 15.4.11: 18 dialectos válidos más el alias tsql de transactsql: SQL estándar, MySQL, MariaDB, TiDB, SingleStore, PostgreSQL, Amazon Redshift, SQLite, SQL Server (T-SQL), Oracle PL/SQL, BigQuery, Snowflake, Spark SQL, Hive, Trino / Presto, IBM Db2, Db2 for i, Couchbase N1QL. El dialecto manda sobre qué se cree palabra clave, cómo se entrecomilla y cómo se comentan las líneas; equivocarse normalmente no da error pero la caja sale distinta de lo esperado (un doble dos de conversión de PostgreSQL leído como operadores sueltos, por ejemplo). Con duda, SQL estándar.
No. Hace una sola cosa: aplastar las seguidillas de espacios, saltos y tabuladores que queden fuera de cadenas y comentarios a un espacio solo, con quitar los comentarios opcional. No acorta identificadores, no suelta paréntesis ni hace compresión sintáctica alguna: el ahorro es flojo; tómalo como el gesto de encajar un SQL en una línea rápido, no como minimizador ni ofuscador. Los espacios dobles dentro de las cadenas se quedan; los comentarios van igual por defecto (hasta los saltos dentro de los de bloque) y solo se van si marcas quitar comentarios.
Nada se sube. El análisis léxico, el formateo y el quitado de espacios corren en tu navegador - sql-formatter es script autoalojado, sin CDN -: tu SQL y los nombres de tabla no salen de la máquina, recargar lo borra y la página no lanza ningún envío. El tope son 200.000 caracteres por tanda; pasado el millar de líneas avisa de que puede tardar: medido, guiones de diez mil líneas suelen cerrar en uno o dos segundos.