piapia123
es

Formateador y minificador de SQL

Formato

Todo se ejecuta en tu navegador: no se sube nada

Entrada
Arrastra un archivo aquí para cargarlo
Resultado

Expande una sentencia apretada en una sola línea a una estructura con una cláusula por línea: cada cláusula empieza su propia línea con el cuerpo sangrado debajo, AND / OR y JOIN / ON rompen a su propia línea, y una subconsulta entre paréntesis se sangra un nivel más con el paréntesis de cierre devuelto al nivel exterior. Las palabras clave pueden ir en mayúsculas, en minúsculas o tal cual estaban, y los identificadores sin comillas se conservan. Los identificadores entrecomillados se reentrecomillan para el dialecto elegido (ANSI / Postgres usan comillas dobles, MySQL comillas invertidas, SQL Server corchetes), mientras que los literales de cadena entre comillas simples no se tocan nunca — bien pueden contener una comilla invertida o un corchete. Los literales de cadena, los comentarios, los identificadores con comillas invertidas o corchetes y el dollar quoting de Postgres quedan fuera del análisis estructural, así que un punto y coma dentro de un texto no parte una sentencia en dos.

Funciones

  • La salida va con resaltado: palabras clave, cadenas y comentarios con colores distintos
  • Una línea por cláusula: SELECT, FROM, WHERE, GROUP BY, ORDER BY, HAVING, LIMIT, VALUES, SET, RETURNING y compañía
  • AND / OR / JOIN / ON empiezan cada uno una línea, así que una lista larga de condiciones conserva un límite visible
  • Las subconsultas entre paréntesis abren un bloque y su paréntesis de cierre vuelve al nivel del cuerpo de la cláusula
  • Los paréntesis de una llamada a función se quedan en línea, así que COUNT(*) nunca se parte
  • Las palabras clave pueden ir en mayúsculas, minúsculas o tal cual; los identificadores sin comillas se conservan siempre
  • Elige un dialecto (ANSI / PostgreSQL / MySQL / SQL Server) para reentrecomillar los identificadores en ese dialecto, convirtiendo los tres estilos con el escape correcto; los literales de cadena no se tocan
  • Puedes anteponer un número de línea alineado a la derecha (el ancho sigue al total de líneas) para localizar el error; el minificador lo ignora
  • Los literales de cadena, los comentarios, los identificadores con comillas invertidas o corchetes y el dollar quoting de Postgres quedan fuera del análisis estructural
  • El minificador quita comentarios y espacios sobrantes sin pegar - -1 en --1, que comentaría el resto de la línea
  • Sin validación de sintaxis: el SQL mal formado se sangra lo mejor posible en vez de rechazarse

Cómo se usa

  1. Pega tu SQL en el cuadro de entrada
  2. Elige el modo, el sangrado y el estilo de las palabras clave; ajusta el dialecto y los números de línea si los necesitas
  3. Pulsa Ctrl/⌘ + Enter o haz clic en «Ejecutar»
  4. Haz clic en «Copiar» para llevarte el resultado

Preguntas frecuentes

¿Valida la sintaxis de SQL?
No. Solo reordena los espacios y el estilo de las palabras clave, así que una sentencia con una errata se formatea igual. Tómalo como una forma de hacer legibles las consultas que funcionan, no como un sustituto de los mensajes de error de tu base de datos.
¿Por qué el minificador quita también los comentarios?
Un comentario de línea condensado en una sola línea comenta todo lo que viene después, mientras la salida sigue pareciendo perfectamente normal. Es más seguro quitar los comentarios que dejar una trampa en la sentencia. Usa el modo formatear cuando quieras conservarlos.
¿Qué dialectos de SQL se admiten y qué cambia la opción de dialecto?
El formato en sí (saltos de línea, sangrado, estilo de las palabras clave) es de verdad independiente del dialecto: las palabras clave no distinguen mayúsculas, así que cambiar su estilo no altera nada. Lo que sí va atado a un dialecto es cómo se entrecomillan los identificadores: ANSI y Postgres usan comillas dobles `"nombre"` (en Postgres la comilla doble marca un identificador y la simple una cadena), MySQL usa comillas invertidas y SQL Server corchetes `[nombre]`. Así que la opción de dialecto convierte los identificadores entrecomillados de tu entrada al dialecto elegido, pasando de `` `order` `` / `[order]` / `"order"` entre los tres y escapando correctamente en cada uno (comillas invertidas dobladas en MySQL, `]` doblado en SQL Server, `"` doblado en ANSI). Los literales de cadena entre comillas simples no se tocan nunca — pueden contener una comilla invertida o un corchete, y cambiarlos sería cambiar tus datos. Las diferencias de palabras clave entre dialectos no se reescriben, porque cambiarían el significado y quedan fuera del alcance del formato.
¿Se sube mi SQL a algún sitio?
No. Todo ocurre en la memoria de tu navegador, la página no hace ninguna petición y funciona sin conexión.

Herramientas relacionadas