Formatear SQL
Pega una consulta, elige tu base de datos y recíbela con sangría y una cláusula por línea.
Funciona completamente en tu navegador
- Entrada
- 0
- Salida
- 0
- Cambio
- 0%
Entrada de hasta unos 10 MB. Solo cambia el formato: no ejecuta tu SQL, no lo valida contra un esquema ni lo optimiza.
Cómo formatear una consulta SQL
- Pega la consulta en el cuadro o presiona Insertar un ejemplo para ver cómo funciona.
- Elige tu base de datos en Dialecto y luego ajusta las mayúsculas de las palabras clave y el tamaño de la sangría.
- La consulta formateada aparece abajo mientras escribes. Cópiala o descárgala como archivo
.sql.
Hacer que el SQL sea legible
Una base de datos lee una consulta igual si está en una línea o en cuarenta, y por eso las consultas copiadas de registros, ORM y herramientas de monitoreo suelen llegar como una sola cadena sin cortes. Formatear SQL pone cada cláusula principal (SELECT, FROM, WHERE, GROUP BY, ORDER BY) en su propia línea y sangra debajo las columnas, condiciones y subconsultas, para que veas la forma de la consulta de un vistazo y detectes una condición de join que falta.
El formato sigue el dialecto que elijas, porque las palabras y los símbolos cambian de una base de datos a otra. Una conversión de PostgreSQL como price::numeric, un parámetro numerado como $1, un nombre de MySQL entre comillas invertidas, una cláusula CONNECT BY de Oracle y un TOP 10 de SQL Server son válidos en un dialecto y un error de sintaxis en otro. Los marcadores de parámetros enlazados (?, $1, :name, @name) se reconocen y se dejan intactos.
Las mayúsculas de las palabras clave no afectan cómo se ejecuta una consulta, así que son solo una cuestión de estilo de cada equipo. Un formateador que entiende la gramática puede cambiarlas sin riesgo, porque sabe qué palabras son palabras clave y cuáles son nombres de columna o texto entre comillas.
Consejos
- ¿Comparas una consulta antes y después de un cambio? Formatea ambas con la misma configuración y compáralas en Comparar textos.
- ¿La consulta devuelve columnas JSON? Pega un valor en Formatear y validar JSON para leerlo.
- ¿Necesitas cambiar el nombre de una tabla en un script largo? Buscar y reemplazar lo resuelve antes de formatear.
Preguntas frecuentes
¿Se sube mi SQL?
No. El código que formatea es un script servido desde este sitio que se carga la primera vez que pegas una consulta; la consulta en sí se queda en tu navegador y no se envía a ningún servidor.
¿Por qué importa el dialecto?
Cada base de datos agrega su propia sintaxis. PostgreSQL tiene conversiones con :: y parámetros $1, SQL Server tiene nombres [entre corchetes] y TOP, MySQL y MariaDB encierran los nombres entre comillas invertidas, y BigQuery tiene sus propias formas de arrays y structs. Elegir el correcto permite que el analizador acepte tu consulta. SQL estándar es la opción segura si no estás seguro, pero es más estricto con los agregados de cada proveedor.
¿Por qué veo un error en una consulta que funciona bien en mi base de datos?
El formateador lee la instrucción completa en lugar de solo volver a indentar las líneas, así que un paréntesis o unas comillas sin cerrar lo detienen, igual que una sintaxis que pertenece a otro dialecto. El mensaje indica la línea y la columna donde se detuvo, y la solución más común es elegir el dialecto correspondiente.
¿Formatear cambia lo que hace la consulta?
Solo cambian los espacios en blanco y, si lo eliges, las mayúsculas de las palabras clave. Los literales de cadena, los nombres entre comillas y los números conservan su texto, así que 'select' entre comillas sigue en minúsculas cuando eliges MAYÚSCULAS.
¿Puedo formatear varias instrucciones juntas?
Sí. Las instrucciones separadas por punto y coma se formatean cada una, con una línea en blanco entre ellas.
¿Qué uso para las palabras clave, mayúsculas o minúsculas?
Cualquiera sirve; es una cuestión de estilo y las bases de datos lo ignoran. Las palabras clave en mayúsculas son la convención más antigua y hacen que las cláusulas resalten en texto simple. Las minúsculas son comunes en proyectos que ya usan un linter o la salida de un ORM con ese estilo. Mantener como está deja tus mayúsculas sin cambios.