Formateador SQL

Formatea texto SQL para mejorar la legibilidad.

Antes

Después

¿Qué es un formateador de SQL?

Una sentencia SQL larga apretada en una sola línea no revela nada de su estructura. Esta herramienta introduce saltos de línea en torno a palabras clave como SELECT, FROM, WHERE y JOIN, e indenta las subconsultas anidadas, de modo que la forma de la sentencia pueda seguirse con la vista. El formateo no altera nunca el significado.

El dialecto que elija influye en el resultado. MySQL, PostgreSQL, Oracle y SQL Server tienen cada uno su propia sintaxis, así que escoja el que corresponda a su base de datos. Tenga en cuenta además que un SQL con un error de sintaxis no puede analizarse correctamente y puede volver sin formatear: en ese caso, compruebe primero la validez del propio SQL.

Pasos para formatear SQL

  1. Pegue su SQL Pegue en el campo el SQL que quiera formatear. Si separa las sentencias con punto y coma, podrá procesar varias a la vez.
  2. Elija el dialecto Seleccione el que corresponda a la base de datos que usa. Si no lo sabe, el SQL estándar formatea igualmente la gran mayoría de sintaxis.
  3. Ajuste la indentación y las mayúsculas Adapte el ancho de indentación a la convención de su equipo. Al activar las mayúsculas, las palabras clave se alinean y la sentencia se lee mejor.
  4. Formatee y compruebe el resultado Pulse «Formatear» y aparecerá el resultado, listo para pegarlo directamente en una revisión de código o en una especificación.

Consejos para aprovecharla mejor

  • Las palabras clave SQL como SELECT, FROM, WHERE y JOIN se separan y alinean automáticamente, y las subconsultas anidadas se indentan correctamente.
  • Activar "Mayúsculas en palabras clave" convierte automáticamente las palabras clave a mayúsculas, mejorando la legibilidad.
  • Ajusta el tamaño de la sangría para adaptarte a las guías de estilo de tu equipo.
  • Pegar el SQL formateado en revisiones de código o documentación lo hace mucho más fácil de leer.
  • Admite los principales dialectos SQL, incluidos MySQL, PostgreSQL y Oracle.

Cuándo resulta útil un formateador de SQL

Descifrar un SQL que le han pasado

Formatee una sentencia de una sola línea extraída de un registro o del código de una aplicación y la estructura de las condiciones de unión y de filtrado quedará clara de un vistazo.

Ordenarlo antes de una revisión de código

Si lo entrega con la indentación ya alineada, quien revise podrá centrarse en la lógica y no en la presentación. El diff también se lee mejor.

Incluir SQL en una especificación

Pegue SQL formateado en un documento y quien lo lea podrá seguir la estructura. Junto con las mayúsculas, se lee bien incluso impreso.

Analizar la forma de una consulta lenta

Como ve la profundidad de las subconsultas y el número de uniones, puede formular una hipótesis antes incluso de leer el plan de ejecución.

Términos de SQL explicados

Dialecto SQL
Las diferencias de sintaxis entre productos de base de datos. Cada producto añade sus propias extensiones al SQL estándar: de ahí la importancia de la elección al formatear.
Subconsulta
Una consulta escrita anidada dentro de otra sentencia SQL. Cuanto más se adentra, más difícil resulta de leer, y es justo ahí donde la indentación rinde más.
JOIN
La sintaxis que obtiene datos enlazando varias tablas. Las condiciones de unión se alargan con facilidad, así que el lugar de los saltos de línea gobierna la legibilidad.
Sentencia preparada
Un enfoque que construye la consulta insertando los valores después. Es el fundamento de cualquier defensa contra la inyección SQL.
Inyección SQL
Un ataque que mezcla fragmentos de SQL en los valores introducidos para hacer ejecutar una consulta no prevista. Construir SQL por concatenación de cadenas lo facilita.
Procedimiento almacenado
Una secuencia de procesos guardada en el lado de la base de datos. Al contener sintaxis de control, puede quedar fuera de lo que abarca el formateo.

Preguntas frecuentes

Además del SQL estándar, se admiten MySQL, PostgreSQL, Oracle (PL/SQL) y SQL Server (T-SQL). Selecciona el dialecto que coincide con tu base de datos en el menú desplegable para formatear correctamente su sintaxis específica.

Si el SQL de entrada contiene errores de sintaxis, el formateador puede no analizarlo correctamente. Verifica que tu SQL sea válido usando un cliente de base de datos antes de formatearlo.

Puedes pegar varias sentencias SQL separadas por punto y coma y se formatearán juntas. Sin embargo, los procedimientos almacenados y la sintaxis de bloques PL/SQL pueden no estar completamente soportados.
Tool-kun

A propósito — 50 años de SQL: historia de las bases de datos relacionales

SQL nació cuando IBM desarrolló "SEQUEL" basándose en el modelo relacional propuesto por E.F. Codd (IBM) en un artículo de 1970 (renombrado a SQL por razones de marca registrada). Fue estandarizado por ANSI en 1986 y ha sido utilizado en incontables bases de datos desde entonces.

Uno de los incidentes de seguridad más famosos es el ataque de inyección SQL. La brecha de Sony PSN (PlayStation Network) en 2011 expuso más de 100 millones de registros personales, con daños estimados en 171 millones de dólares. Sigue siendo habitual en el OWASP Top 10, y el uso de sentencias preparadas es la contramedida fundamental.

"WHERE 1=1" es una técnica práctica para construir SQL dinámico, pero también es un ejemplo clásico de inyección SQL. La posibilidad de iniciar sesión sin contraseña introduciendo ' OR '1'='1 en un formulario de login sigue siendo un ejemplo canónico en la formación en seguridad.