Formatear e indentar una consulta SQL

formatea tus consultas SQL para hacerlas legibles y comprensibles, facilitando el desarrollo y el mantenimiento

¿Por qué el formateo SQL?

El formateo SQL permite que las consultas SQL sean más legibles y comprensibles para los desarrolladores y los administradores de bases de datos. Facilita la depuración, la revisión de código y la optimización de las consultas. Un SQL bien formateado es esencial para mantener la calidad del código y colaborar de forma eficaz dentro de un equipo de desarrollo.

Tipos de consultas SQL admitidas

Esta herramienta admite todos los tipos de consultas SQL, incluidas las instrucciones SELECT, INSERT, UPDATE, DELETE, así como las instrucciones de creación y modificación de tablas (CREATE, ALTER, DROP).

Cómo formatear consultas SQL

En la página de formateo, puede formatear su consulta SQL pegándola en la zona de texto prevista a tal efecto.

En cuanto se envíe la consulta SQL, se formateará y se mostrará en una zona de resultado. Si la consulta no es válida, se mostrará un error con una indicación de la naturaleza del problema.

Utilizar el SQL formateado

Puede copiar el SQL formateado utilizando el botón de copia previsto a tal efecto. Esto facilitará la integración de las consultas SQL en sus proyectos o informes.

Su código SQL debería parecerse a esto:


SELECT u.id, u.name, u.email,
       p.product_name, p.price,
       o.order_date, o.quantity,
       (SELECT SUM(p2.price * o2.quantity)
        FROM orders o2
        JOIN products p2 ON o2.product_id = p2.id
        WHERE o2.user_id = u.id) as total_spent
FROM users u
JOIN orders o ON u.id = o.user_id
JOIN products p ON o.product_id = p.id
WHERE u.id IN (
    SELECT user_id
    FROM orders
    WHERE order_date >= '2023-01-01' AND order_date <= '2023-12-31'
    GROUP BY user_id
    HAVING COUNT(*) > 5
)
AND p.price > 50
ORDER BY u.name ASC, o.order_date DESC
LIMIT 10;

    

Preguntas frecuentes

¿Qué dialectos SQL se admiten: MySQL, PostgreSQL, SQL Server?

El formateador reconoce la sintaxis SQL estándar (ANSI) así como las principales extensiones de MySQL, PostgreSQL, SQL Server (T-SQL), Oracle (PL/SQL) y SQLite. Las palabras clave específicas de cada motor (LIMIT de MySQL y PostgreSQL, TOP de SQL Server, RETURNING de PostgreSQL, MERGE) se indentan correctamente. Las funciones nativas propias de un motor se conservan tal cual sin validación.

¿El formateador gestiona las CTE y las consultas recursivas?

Sí. Las CTE (Common Table Expressions) declaradas con WITH ... AS (...) se indentan en su propio bloque, y las CTE recursivas (WITH RECURSIVE) se reconocen. Esto hace que las consultas complejas sean claramente más legibles, en especial las jerarquías (árboles, grafos) y las ventanas deslizantes. Las subconsultas correlacionadas también se alinean con su alcance padre.

¿Qué diferencia hay entre un formateador SQL y un optimizador de consultas?

Un formateador SQL no cambia la semántica de la consulta: se limita a reorganizar visualmente el código (saltos de línea, indentación, mayúsculas y minúsculas de las palabras clave). Un optimizador, en cambio, reescribe la consulta o sugiere modificaciones (índices que faltan, joins por reorganizar, subconsultas por transformar en joins) para mejorar el rendimiento. Para analizar el plan de ejecución, utilice EXPLAIN o EXPLAIN ANALYZE según el motor.

¿Se preservan los comentarios SQL?

Sí. Los comentarios en línea -- commentaire y los comentarios multilínea /* ... */ se conservan en su ubicación original. Es esencial para documentar una consulta compleja o marcar secciones (TODO, hint para el optimizador, versión de una migración). Si transmite la consulta a un motor que interpreta los hints comentados (/*+ INDEX(...) */ en Oracle), también se preservan.

¿Por qué las palabras clave SQL se ponen en mayúsculas?

Poner las palabras clave (SELECT, FROM, WHERE, JOIN) en mayúsculas es una convención histórica que las distingue visualmente de los identificadores (nombres de tabla, columnas). Esta práctica facilita la lectura, sobre todo en las consultas largas. Los nombres de tabla y de columna, en cambio, se conservan en sus mayúsculas y minúsculas originales para respetar las convenciones del esquema (en particular en PostgreSQL, donde la capitalización es sensible para los identificadores entrecomillados).

¿El formateador valida la sintaxis SQL?

El formateador realiza un análisis sintáctico ligero que detecta los errores groseros (paréntesis no equilibrados, punto y coma que falta al final de una instrucción, palabras clave incoherentes). No valida la existencia de las tablas y columnas, ni la conformidad con un esquema preciso. Para eso, ejecute la consulta en modo EXPLAIN sobre su base, o utilice un linter dedicado como sqlfluff.

Ejemplo de solicitud

curl -X POST https://cdrn.fr/api/v1/tools/sql-formatter/execute \
  -H "Content-Type: application/json" \
  -d '{"input":"..."}'

Esquema de entrada

Campo Tipo Obligatorio Por defecto
input text

Puntos de acceso

  • GET https://cdrn.fr/api/v1/tools - lista todas las herramientas disponibles
  • GET https://cdrn.fr/api/v1/tools/sql-formatter - recupera el esquema de esta herramienta
  • POST https://cdrn.fr/api/v1/tools/sql-formatter/execute - ejecuta esta herramienta con un payload JSON