Formateador de SQL
Enter SQL on the left to start formatting
El formateador SQL de GeekFormat embellece y organiza rápidamente las sentencias de consulta SQL desordenadas. Admite 20 dialectos de bases de datos incluidos MySQL, PostgreSQL, SQLite, SQL Server, Oracle, etc., con opciones de formateo personalizables como mayúsculas/minúsculas de palabras clave, estilo de indentación, posición de salto de línea para operadores y ancho de expresiones. Ofrece 4 preajustes con un clic con funciones integradas de minificación SQL y validación sintáctica, admite carga/descarga de archivos, compartir URL y atajos de teclado. Proporciona resaltado sintáctico y diseño de panel ajustable basado en el editor CodeMirror 6 con formateo automático en tiempo real después de la entrada. Todo el procesamiento se realiza localmente en tu navegador — las sentencias SQL nunca se envían a los servidores.
Relacionado
Acerca del formateo SQL
El formateo SQL (SQL Formatting / SQL Beautification) se refiere a ajustar los espacios en blanco (saltos de línea, indentación, espacios) y mayúsculas/minúsculas de palabras clave de sentencias SQL mediante herramientas automatizadas para darles una estructura de diseño coherente y altamente legible. Como lenguaje de consulta declarativo, una consulta SQL compleja a menudo involucra múltiples cláusulas como JOIN de varias tablas, subconsultas anidadas, múltiples condiciones WHERE, agrupación GROUP BY, filtrado HAVING, ordenación ORDER BY, etc. Sin formateo, todo el contenido amontonado en una línea o con indentación caótica perjudica gravemente la legibilidad y la eficiencia de mantenimiento. El SQL formateado coloca cada cláusula en su propia línea mediante saltos de línea e indentación apropiados, expresando los niveles de anidamiento a través de la indentación, permitiendo a los lectores comprender rápidamente la estructura de la consulta.
¿Por qué es importante el formateo SQL? En entornos de colaboración en equipo, diferentes desarrolladores tienen diferentes preferencias de estilo de codificación: algunos prefieren palabras clave en mayúsculas, otros en minúsculas; algunos usan indentación de 2 espacios, otros 4 espacios o Tab; algunos colocan AND al principio de la línea, otros al final. Estas diferencias de estilo en sí mismas no afectan la ejecución SQL, pero generan grandes cantidades de diff sin sentido durante la revisión de código, obligando a los revisores a distinguir entre cambios lógicos reales y meros ajustes de formato. Los estándares unificados de formateo SQL y las herramientas de formateo automatizado eliminan los debates de estilo y permiten a los equipos centrarse en la lógica de negocio en sí.
Las reglas fundamentales del formateo SQL generalmente incluyen los siguientes aspectos: Primero, mayúsculas/minúsculas de palabras clave — las palabras reservadas SQL como SELECT, FROM, WHERE, JOIN, ON, GROUP BY, ORDER BY, HAVING, LIMIT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP generalmente están en mayúsculas para distinguirse de los identificadores (o uniformemente en minúsculas según estándares del equipo); Segundo, saltos de línea de cláusulas — cada cláusula principal (SELECT/FROM/WHERE/GROUP BY/ORDER BY, etc.) en su propia línea; Tercero, alineación de nombres de columnas — varios nombres de columnas en listas SELECT ocupan cada uno una línea y se alinean verticalmente; Cuarto, niveles de indentación — subconsultas, condiciones JOIN, expresiones CASE anidadas, etc., reflejan jerarquía mediante indentación aumentada; Quinto, posición de operadores — operadores lógicos como AND/OR colocados uniformemente al principio o al final de la línea.
El formateo SQL para diferentes dialectos de bases de datos tiene sus particularidades. MySQL usa acentos invertidos (`) para citar identificadores, PostgreSQL usa comillas dobles ("), SQL Server usa corchetes ([]); MySQL usa LIMIT para paginación, PostgreSQL admite LIMIT/OFFSET, SQL Server usa TOP u OFFSET/FETCH, Oracle usa ROWNUM; PostgreSQL tiene el operador de conversión de tipo ::, MySQL tiene escape de acento invertido, SQL Server tiene identificadores entre corchetes. Estas diferencias de dialecto requieren que los formateadores reconozcan elementos sintácticos específicos de bases de datos particulares; de lo contrario, la sintaxis especial puede juzgarse erróneamente como error o las palabras clave separarse incorrectamente. Esta herramienta está implementada basada en la biblioteca sql-formatter, proporcionando soporte sintáctico especializado para 20 dialectos SQL principales.
La minificación SQL (SQL Minification) es la operación inversa al formateo y muy útil en ciertos escenarios. El SQL impreso en registros de aplicaciones, el SQL generado por frameworks ORM (como Hibernate, MyBatis, Django ORM, SQLAlchemy), el SQL capturado por herramientas de monitoreo de rendimiento de bases de datos — estos suelen estar en formato comprimido de una sola línea sin saltos de línea, lo que es muy poco amigable para la resolución de problemas — se requiere formateo primero para la legibilidad. Por el contrario, cuando es necesario incrustar SQL en cadenas de código (como concatenación de cadenas en Java/Python/JavaScript), escribir en archivos de configuración, pasar a través de parámetros URL o compartir en herramientas de chat que no admiten texto multilínea, la compresión a una sola línea evita problemas de formato causados por saltos de línea e indentación.
Elegir el estilo de formateo apropiado requiere considerar los estándares del equipo y los escenarios de uso. El estilo de palabras clave en mayúsculas es la convención tradicional de SQL — en la época de la imprenta, las palabras clave en mayúsculas hacían que el SQL manuscrito o escrito a máquina fuera más legible, y muchos equipos y organizaciones todavía lo usan hoy. El estilo de palabras clave en minúsculas es cada vez más popular en plataformas de código modernas como GitHub porque las minúsculas son visualmente más suaves y, con el resaltado sintáctico en editores modernos, las mayúsculas/minúsculas ya no son necesarias para distinguir palabras clave. El ancho de indentación de 2 espacios es más común entre desarrolladores frontend, 4 espacios más extendido entre desarrolladores backend Java/C#. La indentación Tab permite a diferentes desarrolladores personalizar el ancho de visualización en editores. Colocar operadores lógicos AND/OR al principio de la línea facilita el escaneo de cada condición al leer listas de condiciones largas; colocar al final de la línea es más conforme a los hábitos de lectura en inglés.
Los principios de implementación de las herramientas de formateo SQL se basan principalmente en análisis léxico (Tokenización) y análisis sintáctico. Bibliotecas como sql-formatter descomponen primero cadenas SQL en una serie de tokens (palabras clave, identificadores, literales, operadores, puntuación, comentarios, etc.), luego reorganizan estos tokens según reglas sintácticas (diferentes dialectos tienen diferentes conjuntos de reglas), insertando saltos de línea e indentación en posiciones apropiadas. A diferencia de los formateadores de código generales (como Prettier), los formateadores SQL necesitan comprender las estructuras gramaticales específicas de SQL (como condiciones JOIN...ON, expresiones CASE WHEN...END, anidamiento de paréntesis de subconsulta) para una indentación correcta, no solo basándose en la coincidencia de llaves o paréntesis.
Los siguientes puntos deben tenerse en cuenta al usar herramientas de formateo SQL: Primero, el formateo no verifica la corrección semántica del SQL — un SQL con sintaxis correcta pero errores lógicos (como condiciones JOIN incorrectas, condiciones WHERE faltantes) sigue siendo incorrecto después del formateo; el formateo solo mejora el diseño, no la lógica; Segundo, las herramientas de formateo pueden en raros casos límite producir resultados diferentes del SQL original en escenarios sensibles a espacios (como espacios dentro de constantes de cadena, posiciones de comentarios específicas); se recomienda una verificación simple después del formateo; Tercero, no ejecutes el SQL generado por herramientas de formateo directamente en producción sin pruebas, especialmente el SQL que contiene parámetros dinámicos; Cuarto, para SQL que contiene datos sensibles (contraseñas, claves, PII), usa herramientas de formateo locales (como esta herramienta) en lugar de herramientas en línea para evitar riesgos de fuga de datos.
Casos de uso
- Organizar grandes procedimientos almacenados SQL sin formatear y consultas JOIN complejas al asumir proyectos heredados para comprender rápidamente la lógica de negocio
- Estandarizar el estilo SQL antes de las revisiones de código en equipo para eliminar el ruido de diff causado por preferencias de formateo personales y centrarse en la revisión lógica
- Formatear SQL comprimido de una sola línea copiado de registros o consolas para lectura y resolución de problemas más fáciles
- Formatear ejemplos SQL al redactar documentación técnica y blogs para mayor profesionalismo y legibilidad al incrustarlos en documentos
- Reformatear SQL exportado de clientes de bases de datos con formateo desordenado al estilo estándar del equipo antes de confirmar el código
- Formatear sentencias de demostración SQL para presentaciones PPT y explicaciones en pizarra al preparar entrevistas o presentaciones técnicas
- Formatear subconsultas anidadas desordenadas para localizar problemas estructurales como paréntesis no emparejados o palabras clave faltantes al solucionar errores SQL
- Los registros SQL generados por frameworks ORM suelen estar en formato comprimido sin saltos de línea; formatéalos para facilitar el análisis de las consultas realmente ejecutadas
- Formatear sentencias CREATE TABLE e INSERT para una mantenibilidad mejorada al desarrollar scripts de migración de datos
- Estandarizar el formateo antes de comparar versiones SQL de diferentes versiones para evitar que diferencias de formateo puras interfieran con la revisión de código
- Formatear consultas de ejemplo al aprender SQL para comprender las relaciones jerárquicas de JOIN, subconsultas y GROUP BY mediante indentación y saltos de línea claros
- Formatear fragmentos SQL antes de compartirlos con colegas a través de enlaces URL — los destinatarios ven resultados formateados idénticos inmediatamente al abrirlos
Cómo Usar
- Selecciona un dialecto de base de datos (MySQL por defecto, admite 20 dialectos SQL) para garantizar que el formateador reconozca correctamente la sintaxis
- Pega las sentencias SQL a formatear en el área de edición izquierda, o haz clic en el botón de carga para importar archivos .sql/.txt, o carga SQL de ejemplo desde el menú de ejemplos
- Haz clic en el botón de formateo (Shift+Cmd/Ctrl+F) o espera el formateo automático (se activa automáticamente 800 ms después de la entrada), los resultados formateados se muestran instantáneamente a la derecha
- Para ajustar el formateo, haz clic en el botón de configuración para expandir el panel de configuración, ajusta opciones como mayúsculas/minúsculas de palabras clave, indentación y saltos de línea, o selecciona un estilo predefinido; para minificación de una sola línea, haz clic en el botón de minificar
- Haz clic en el botón de copiar para copiar los resultados, o haz clic en el botón de descarga para guardar como archivo .sql, o haz clic en el botón de compartir para generar un enlace URL que contenga el contenido SQL
Características
- Compatibilidad con 20 dialectos de bases de datos: admite reconocimiento sintáctico y formateo para 20 dialectos SQL incluidos Standard SQL, MySQL, MariaDB, TiDB, PostgreSQL, SQLite, BigQuery, Snowflake, Redshift, DB2, PL/SQL (Oracle), T-SQL (SQL Server), Spark SQL, Hive, Trino, ClickHouse, DuckDB y más
- Control de mayúsculas/minúsculas de palabras clave: tres modos para palabras clave como SELECT/FROM/WHERE/JOIN: mayúsculas (UPPER), minúsculas (lower) o conservar formato original (preserve), con configuración separada para tipos de datos y nombres de funciones
- Control de mayúsculas/minúsculas de identificadores: los identificadores como nombres de tablas, columnas y alias admiten mayúsculas, minúsculas o conservación del formato original, adaptándose a diferentes estándares de codificación de equipo
- Estilos de indentación seleccionables: tres estilos de indentación disponibles: indentación estándar, alineación tabular a la izquierda (tabularLeft) y alineación tabular a la derecha (tabularRight) para adaptarse a diferentes preferencias de lectura
- Configuración de indentación flexible: elige el ancho de indentación entre 2 espacios, 4 espacios o el carácter Tab; establece el número de líneas en blanco entre sentencias de consulta en 0/1/2 líneas
- Salto de línea para operadores lógicos: configura si los operadores lógicos como AND/OR saltan antes (before) o después (after) del operador para coincidir con el estilo de código de tu equipo
- Control de ancho de expresiones: umbral de ancho de línea ajustable para el salto de línea de expresiones (20-200 caracteres), salto automático cuando se supera el ancho para controlar la longitud de código en una sola línea
- Modo de operadores densos: cuando se activa, no hay espacios adicionales alrededor de los operadores para resultados de formateo más compactos, adecuado para escenarios SQL embebidos
- Salto de línea antes del punto y coma: inserta opcionalmente un salto de línea antes del punto y coma de finalización de sentencia, colocando el punto y coma en su propia línea para una identificación rápida de los límites de sentencias
- 4 estilos predefinidos: cambio con un clic entre los preajustes Predeterminado (palabras clave UPPER + indentación de 2 espacios), Minúsculas (todas las palabras clave en minúsculas), Compacto (alineación tabular + operadores densos) y Espacioso (indentación de 4 espacios + dobles líneas en blanco) sin ajuste manual
- Minificación SQL: compresión con un clic de SQL en una sola línea, eliminando automáticamente comentarios, espacios adicionales y saltos de línea — ideal para salida de registros, concatenación de código e incrustación de documentos
- Validación sintáctica: validación sintáctica SQL básica, mostrando mensajes de error cuando falla el formateo para ayudar a localizar problemas sintácticos
- SQL de ejemplo integrado: se proporcionan cuatro conjuntos de SQL de ejemplo: consultas básicas, consultas JOIN complejas, lotes de múltiples sentencias y sentencias CREATE TABLE para una experiencia de formateo rápida
- Carga/descarga de archivos: carga archivos .sql/.txt para importar SQL directamente; descarga los resultados formateados como archivos .sql para guardar
- Compartir URL: codifica el SQL en el hash de URL mediante compresión LZ-String — copia el enlace para compartir la configuración de formateo y el contenido SQL
- Formateo automático en tiempo real: formateo automático con anti-rebote de 800 ms después de la entrada SQL, mostrando resultados instantáneamente sin clics repetidos
- Atajos de teclado: Shift+Cmd/Ctrl+F Formatear, Shift+Cmd/Ctrl+C Minificar, Shift+Cmd/Ctrl+V Validar, Shift+Cmd/Ctrl+O Cargar, Shift+Cmd/Ctrl+D Descargar, Shift+Cmd/Ctrl+K Limpiar
- Editor CodeMirror: editor con resaltado sintáctico SQL basado en CodeMirror 6 con ajuste por arrastre del ancho de paneles izquierdo/derecho, ajuste de tamaño de fuente y panel de historial
- Copia de resultados con un clic: copia el SQL formateado o minificado al portapapeles con un clic para pegarlo directamente en clientes de bases de datos o código
- Procesamiento 100% local en el navegador: todo el formateo SQL se realiza en JavaScript del navegador basado en la biblioteca sql-formatter; las sentencias SQL nunca se envían a ningún servidor, garantizando la seguridad de los datos
Preguntas Frecuentes
¿El formateo SQL cambia la lógica de la consulta? ¿Se puede ejecutar directamente el SQL formateado?
No cambia la lógica de la consulta. El formateo SQL solo ajusta los espacios en blanco (saltos de línea, indentación, espacios) y mayúsculas/minúsculas de palabras clave; no modifica identificadores, valores, operadores, llamadas a funciones o estructuras de consulta en SQL. El SQL formateado es semánticamente equivalente al SQL original y se puede copiar directamente a clientes de bases de datos como MySQL Workbench, pgAdmin, DBeaver, Navicat para su ejecución. Sin embargo, se recomienda la verificación en un entorno de prueba antes de la ejecución en producción.
¿Qué dialectos de bases de datos son compatibles? ¿Qué pasa con las diferencias sintácticas SQL entre bases de datos?
Admite 20 dialectos SQL: Standard SQL, MySQL, MariaDB, TiDB, PostgreSQL, SQLite, BigQuery, Snowflake, Redshift, DB2, DB2i, PL/SQL (Oracle), T-SQL (SQL Server), Spark SQL, Hive, Trino, ClickHouse, SingleStoreDB, DuckDB, N1QL (Couchbase). Diferentes bases de datos tienen diferencias en sintaxis de paginación (LIMIT vs LIMIT/OFFSET vs TOP vs ROWNUM), concatenación de cadenas, funciones de fecha, comillas de identificadores (acento invertido vs comillas dobles vs corchetes), etc. La selección del dialecto correcto garantiza que el formateador identifique correctamente palabras clave y nombres de funciones y evite formatear incorrectamente funciones específicas del dialecto.
¿Qué es la minificación SQL? ¿En qué se diferencia del formateo?
La minificación SQL (Minify) es la operación inversa al formateo: elimina todos los comentarios (incluyendo comentarios multilínea /* */ y comentarios de una sola línea --), fusiona espacios consecutivos en espacios simples, elimina espacios adicionales alrededor de paréntesis/comas/puntos y coma/operadores, generando SQL compacto de una sola línea. La minificación es adecuada para escenarios como incrustar SQL en cadenas de código, escribir en archivos de registro, pasar a través de parámetros URL, compartir en ventanas de chat para evitar confusión de saltos de línea. El formateo, por el contrario, agrega saltos de línea e indentación apropiados para mejorar la legibilidad.
¿Cuándo se activa el formateo automático? ¿Se puede desactivar?
Después de introducir o modificar SQL en el área de edición izquierda, el formateo se activa automáticamente después de un retardo de anti-rebote de 800 ms (siempre que el formateo anterior no tuviera errores sintácticos). Esto es para mostrar los resultados del formateo instantáneamente después de que dejes de escribir. Si prefieres el control manual, simplemente haz clic en el botón de formateo en la barra de herramientas sin esperar a la activación automática. Actualmente no hay un interruptor separado para desactivar el formateo automático, pero no se activará repetidamente mientras no se modifique el contenido de entrada.
¿Qué hacer cuando falla el formateo con un aviso de error sintáctico?
El formateador informa errores cuando encuentra sintaxis SQL no analizable. Las causas comunes incluyen: 1) Paréntesis no emparejados — verifica si el número de paréntesis izquierdos y derechos coincide; 2) Cadenas no cerradas — verifica si las comillas simples/dobles aparecen por pares, las comillas dentro de cadenas necesitan escape (como '' o \'); 3) Selección incorrecta de dialecto de base de datos — por ejemplo, uso de sintaxis de conversión de tipo :: específica de PostgreSQL pero con selección de dialecto MySQL; 4) Fragmentos SQL incompletos — por ejemplo, solo condiciones WHERE sin SELECT FROM. Los mensajes de error muestran la posición del problema reportada por el analizador y la razón, que pueden usarse para localizar problemas. También puedes hacer clic primero en el botón de validación (Shift+Cmd/Ctrl+V) para verificar la sintaxis.
¿Cómo elegir entre los modos mayúsculas, minúsculas y conservar formato de palabras clave?
Las palabras clave en mayúsculas (UPPER) son el estilo de codificación SQL más tradicional y popular: las palabras clave en mayúsculas como SELECT/FROM/WHERE/JOIN crean distinción visual con nombres de tablas/columnas, permitiendo una localización rápida de la estructura SQL en grandes cantidades de código. Las palabras clave en minúsculas son más adecuadas para entornos IDE modernos (los editores modernos tienen resaltado sintáctico y ya no dependen de la distinción por mayúsculas/minúsculas) con apariencia visual más uniforme. Conservar (preserve) deja tu formato de entrada sin cambios, adecuado para ajustes de formateo mínimos en código existente. Las estrategias de mayúsculas/minúsculas para palabras clave, identificadores (nombres de tablas/columnas), tipos de datos (VARCHAR/INT/BIGINT) y nombres de funciones (COUNT/SUM/COALESCE) pueden configurarse independientemente.
¿Cuál es la diferencia entre el modo de alineación tabular y la indentación estándar?
La indentación estándar (standard) utiliza indentación jerárquica tradicional con número fijo de espacios por cláusula. Los modos de alineación tabular izquierda/derecha alinean nombres de columnas en listas SELECT, expresiones en condiciones WHERE, etc., por columnas, creando un efecto visual similar a una tabla. Por ejemplo, varios nombres de columnas después de SELECT se alinean verticalmente, y los alias AS también se alinean a la misma posición de columna. Este modo es muy intuitivo al leer consultas de varias columnas en monitores de pantalla ancha, pero puede generar líneas excesivamente largas en pantallas estrechas.
¿Cómo cambiar rápidamente entre el estilo SQL estándar del equipo y las preferencias personales?
Utiliza los botones predefinidos en el panel de configuración: Predeterminado (palabras clave UPPER + indentación estándar de 2 espacios), Minúsculas (todas las palabras clave en minúsculas), Compacto (alineación tabularLeft + operadores densos), Espacioso (indentación de 4 espacios + dobles líneas en blanco entre consultas). Si tu equipo tiene estándares específicos, ajusta las opciones manualmente y formatea. El guardado de preajustes personalizados no es compatible actualmente, pero con opciones de configuración limitadas, los ajustes rápidos son convenientes.
¿El SQL formateado pierde los comentarios?
La operación Formatear (Format) conserva los comentarios — tanto los comentarios de una sola línea -- como los comentarios multilínea /* */ se mantienen cerca de sus posiciones originales (las posiciones exactas dependen de la lógica de procesamiento de comentarios de la biblioteca sql-formatter). Sin embargo, la operación Comprimir (Compress) elimina todos los comentarios para generar el SQL de una sola línea más compacto; copia primero los resultados formateados si los comentarios deben conservarse antes de la compresión.
¿Qué atajos de teclado son compatibles? ¿Cuál es la diferencia entre Mac y Windows/Linux?
Admite los siguientes atajos (usa la tecla Cmd en Mac, la tecla Ctrl en Windows/Linux, todos requieren mantener Shift simultáneamente): Shift+Cmd/Ctrl+F Formatear; Shift+Cmd/Ctrl+C Minificar; Shift+Cmd/Ctrl+V Validación sintáctica; Shift+Cmd/Ctrl+O Cargar archivo; Shift+Cmd/Ctrl+D Descargar archivo; Shift+Cmd/Ctrl+K Limpiar contenido. Haz clic en el icono de signo de interrogación en la barra de herramientas para ver la lista de atajos en cualquier momento.
¿Hay un límite de tamaño para las cargas de archivos SQL? ¿Qué formatos de archivo son compatibles?
Admite la carga de archivos de texto en formatos .sql y .txt. Teóricamente no hay un límite de tamaño estricto para los archivos, pero el procesamiento por el navegador de archivos muy grandes (por ejemplo, archivos de volcado SQL que superen 1 MB) puede generar problemas de rendimiento. Se recomienda el procesamiento de consultas individuales o archivos de script a pequeña escala. Para archivos SQL muy grandes (por ejemplo, volcados completos de bases de datos), divídelos en segmentos más pequeños antes del formateo. El contenido del archivo se lee a través de la API FileReader del navegador y nunca se envía a los servidores.
¿Es segura la función de compartir URL? ¿Pueden los servidores ver el contenido SQL?
La función de compartir URL comprime el contenido SQL mediante LZ-String y lo codifica en la parte hash de la URL (contenido después de #). La parte hash de URL tiene la característica de que nunca se envía a los servidores con las solicitudes HTTP y solo se procesa localmente en el navegador. Cuando copias un enlace compartido a otros, su navegador analiza el hash y lo descomprime para mostrar el contenido SQL — el SQL no pasa por ningún servidor durante todo el proceso. Sin embargo, ten en cuenta que los enlaces compartidos contienen el contenido SQL completo; si el SQL contiene información sensible (como contraseñas, claves, datos personales), no compartas enlaces en canales públicos.
¿Se pueden formatear scripts que contienen múltiples sentencias SQL?
Sí. La herramienta admite formateo por lotes de múltiples sentencias SQL (por ejemplo, múltiples sentencias SELECT/INSERT/UPDATE/CREATE TABLE separadas por puntos y coma). Puedes controlar el espaciado entre sentencias (0/1/2 líneas) a través de la opción "Líneas entre consultas" en el panel de configuración. Carga el SQL de ejemplo "Múltiples sentencias" para experimentar el formateo de múltiples sentencias. Cada sentencia se indenta y formatea independientemente, separada entre sentencias por el número de líneas en blanco configurado.
¿Qué tamaño de sentencias SQL causa ralentizaciones?
Basado en implementación JavaScript pura de la biblioteca sql-formatter, el procesamiento de SQL de unos pocos cientos de líneas generalmente responde en milisegundos en navegadores modernos sin ralentización notable. Incluso los procedimientos almacenados o consultas complejas de miles de líneas se completan en menos de 1 segundo. Todos los cálculos se completan en el hilo principal del navegador; los archivos muy grandes (por ejemplo, volcados SQL que superen 10 000 líneas) pueden causar un breve congelamiento de la interfaz — se recomienda el procesamiento por lotes.
¿La herramienta requiere acceso a Internet? ¿Son seguros los datos SQL?
Funciona sin conexión después de cargar la página; el formateo, minificación y validación SQL se completan todos en JavaScript local del navegador sin enviar tus sentencias SQL introducidas a servidores externos. No utiliza seguimiento de cookies ni recopila el contenido SQL introducido por el usuario. Implementado basado en la biblioteca madura de código abierto sql-formatter con lógica de código transparente y auditable.
Solución de problemas
¿Qué hacer con errores de formateo "Parse error" o "Error al formatear SQL"?
El formateador realiza análisis SQL basado en la biblioteca sql-formatter e informa errores cuando encuentra sintaxis no reconocida. Causas comunes y soluciones: 1) Paréntesis no emparejados — verifica si el número de paréntesis izquierdos y derechos coincide, usa la función de resaltado de coincidencia de paréntesis del editor para facilitar la verificación; 2) Comillas de cadena no cerradas — verifica si las comillas simples/dobles aparecen por pares, las comillas dentro de cadenas necesitan escape (como '' o \'); 3) Selección incorrecta de dialecto de base de datos — por ejemplo, uso del operador :: de PostgreSQL con el dialecto MySQL seleccionado, cambia al dialecto correcto; 4) Sentencias SQL incompletas — por ejemplo, solo la cláusula WHERE sin SELECT FROM; 5) Uso de sintaxis muy específica de la base de datos (como ciertos flujos de control de procedimientos almacenados), intenta cambiar al dialecto más cercano o simplifica los fragmentos SQL antes del formateo.
¿Caracteres chinos o especiales ilegibles después del formateo?
Esta herramienta admite completamente la codificación UTF-8; los caracteres chinos y Unicode permanecen sin cambios durante el formateo. Si aparecen caracteres ilegibles, generalmente se debe a que el SQL pegado proviene de archivos con codificación incorrecta (como copia desde archivos codificados en GBK). Asegúrate de que los archivos fuente se guarden con codificación UTF-8, o convierte los archivos a codificación UTF-8 antes de pegar. El editor CodeMirror del lado del navegador usa UTF-8 por defecto y no introduce conversión de codificación.
¿Sin respuesta o visualización vacía después de cargar el archivo SQL?
La carga de archivos solo admite archivos de texto con extensiones .sql y .txt. Si los archivos están en formato binario (como archivos de base de datos .sqlite, documentos .doc), se muestran ilegibles o vacíos después de la carga. Además, algunos navegadores tienen restricciones de seguridad sobre la lectura de archivos locales mediante JavaScript — asegúrate de seleccionar archivos haciendo clic activamente en el botón de carga en lugar de arrastrar y soltar (la carga por arrastrar y soltar no es compatible actualmente). El tamaño de archivo recomendado no supera 1 MB; el exceso puede provocar un análisis lento del navegador.
¿Algunas palabras clave se vuelven minúsculas/mayúsculas después del formateo, incoherentes con la entrada original?
Este es el comportamiento normal del formateo. La opción Mayúsculas/minúsculas de palabras clave (keywordCase) está establecida por defecto en UPPER, lo que convierte uniformemente las palabras clave SQL a mayúsculas. Si deseas conservar el formato original sin cambios, establece las opciones de mayúsculas/minúsculas para palabras clave, identificadores, tipos de datos, funciones en "Conservar (preserve)" en el panel de configuración — de esta manera, el formateador solo ajusta saltos de línea e indentación sin cambiar las mayúsculas/minúsculas de las letras.
Glosario
- SQL Dialect (Dialecto SQL)
- Extensiones y variantes de Standard SQL por diferentes sistemas de gestión de bases de datos (SGBD). Por ejemplo, el LIMIT de MySQL, la conversión de tipo :: de PostgreSQL, el TOP de SQL Server, el ROWNUM de Oracle son todas sintaxis específicas de dialecto. La selección correcta del dialecto durante el formateo garantiza un análisis sintáctico correcto.
- Keyword Case (Mayúsculas/minúsculas de palabras clave)
- Estrategia de mayúsculas/minúsculas para palabras reservadas SQL (SELECT/FROM/WHERE/JOIN, etc.). Mayúsculas (UPPER) es el estilo tradicional, minúsculas (lower) cada vez más popular en el desarrollo moderno, conservar (preserve) para cambios mínimos.
- Identifier (Identificador)
- Nombres de objetos de base de datos en SQL, incluidos nombres de bases de datos, tablas, columnas, alias, nombres de índices, vistas, procedimientos almacenados, etc. Diferentes bases de datos citan identificadores de manera diferente: MySQL usa acentos invertidos, PostgreSQL usa comillas dobles, SQL Server usa corchetes.
- Indent Style (Estilo de indentación)
- Controla la alineación de indentación durante el formateo SQL. La indentación estándar utiliza progresión jerárquica; tabularLeft/tabularRight alinean nombres de columnas y alias en forma tabular, mejor legibilidad en pantalla ancha pero pueden producir líneas más largas.
- Logical Operator Newline (Salto de línea para operadores lógicos)
- Posición de salto de línea de operadores lógicos como AND/OR en condiciones multilínea. before significa operador al principio de la línea siguiente, after significa operador al final de la línea actual. Diferentes equipos tienen diferentes preferencias.
- Expression Width (Ancho de expresiones)
- Umbral de recuento de caracteres en una sola línea que activa el salto de línea (20-200 caracteres). Las expresiones que superan este ancho se envuelven, similar a configuraciones printWidth/ruler en editores de código.
- Dense Operators (Operadores densos)
- Una opción de formateo que, cuando se activa, no deja espacios adicionales alrededor de operadores (=, <, >, +, -, etc.), como `WHERE id=1 AND status='active'` en lugar de `WHERE id = 1 AND status = 'active'`, produciendo una salida más compacta.
- Lines Between Queries (Líneas entre consultas)
- Número de líneas en blanco entre múltiples sentencias SQL. 0 significa disposición contigua, 1 significa separación por una línea en blanco (común), 2 significa dos líneas en blanco (estilo espacioso), afectando la legibilidad de scripts de múltiples sentencias.
- SQL Minify/Compress (Minificación/Compresión SQL)
- Elimina todos los comentarios y espacios adicionales del SQL formateado, fusionando en formato compacto de una sola línea. Adecuado para salida de registros, incrustación de código, paso por URL, etc. — operación inversa al formateo.
- Pretty Print (Impresión bonita)
- Salida de código o datos en formato altamente legible mediante indentación automática y saltos de línea. SQL Pretty Print es el embellecimiento de formateo SQL, opuesto a Minify (compresión).
- CodeMirror
- Componente de editor de código del lado del navegador (versión 6) utilizado por esta herramienta, que proporciona resaltado sintáctico SQL, visualización de números de línea, plegado de código y otras mejoras de edición — solución de editor de código Web ampliamente utilizada en la industria.
- sql-formatter
- Biblioteca de formateo SQL de código abierto utilizada en el núcleo de esta herramienta, que admite análisis léxico y salida formateada para múltiples dialectos SQL — una de las bibliotecas de formateo SQL más populares del ecosistema frontend.
Lista de dialectos SQL compatibles
La herramienta admite 20 dialectos SQL de bases de datos — la selección del dialecto correspondiente a tu base de datos proporciona resultados de formateo óptimos:
| Dialecto | Base de datos | Descripción |
|---|---|---|
| Standard SQL | Standard SQL | Sintaxis estándar ANSI SQL, adecuada para escenarios generales y dialectos desconocidos |
| MySQL | MySQL / TiDB | Base de datos relacional de código abierto más popular, identificadores con acento invertido, paginación LIMIT |
| MariaDB | MariaDB | Fork de MySQL, sintaxis compatible con MySQL con funciones extendidas |
| PostgreSQL | PostgreSQL | Base de datos de código abierto rica en funciones, identificadores con comillas dobles, conversión de tipo :: |
| SQLite | SQLite | Base de datos ligera embebida, comúnmente utilizada en aplicaciones móviles y navegadores |
| T-SQL | SQL Server / Azure | Transact-SQL de Microsoft SQL Server, identificadores entre corchetes, paginación TOP |
| PL/SQL | Oracle | Extensión SQL procedimental de Oracle, paginación ROWNUM, paquetes integrados ricos |
| BigQuery | Google BigQuery | Almacén de datos de Google Cloud, admite tipos anidados como STRUCT/ARRAY |
| Snowflake | Snowflake | Almacén de datos nativo de nube con fuertes capacidades de procesamiento de datos semiestructurados |
| Redshift | AWS Redshift | Almacén de datos de Amazon Web Services, basado en PostgreSQL pero con sintaxis propietaria |
Comparación de estilos de formateo predefinidos
4 preajustes con un clic para diferentes escenarios de uso:
| Preajuste | Palabras clave | Indentación | Operadores | Espaciado consultas |
|---|---|---|---|---|
| Predeterminado | UPPER | 2 espacios Estándar | Espaciado normal | 1 línea en blanco |
| Minúsculas | lower | 2 espacios Estándar | Espaciado normal | 1 línea en blanco |
| Compacto | UPPER | Tabular Izquierda | Modo denso | 1 línea en blanco |
| Espacioso | UPPER | 4 espacios Estándar | Espaciado normal | 2 líneas en blanco |
Resumen de atajos de teclado
Todos los atajos requieren mantener simultáneamente la tecla modificadora + Shift + la letra correspondiente:
| Acción | Mac | Windows/Linux | Descripción |
|---|---|---|---|
| Formatear | ⇧⌘F | Shift+Ctrl+F | Embellecer sentencias SQL, agregar saltos de línea e indentación |
| Minificar | ⇧⌘C | Shift+Ctrl+C | Comprimir SQL a una sola línea, eliminar comentarios y espacios |
| Validar | ⇧⌘V | Shift+Ctrl+V | Verificar la corrección sintáctica SQL |
| Cargar | ⇧⌘O | Shift+Ctrl+O | Cargar .sql/.txt desde archivo local |
| Descargar | ⇧⌘D | Shift+Ctrl+D | Guardar resultados como archivo .sql |
| Limpiar | ⇧⌘K | Shift+Ctrl+K | Limpiar contenido de entrada y salida |
Privacy & Security
Todas las operaciones de este formateador SQL se completan completamente localmente en tu navegador: las sentencias SQL que introduces, el dialecto seleccionado y la configuración de formateo se procesan todos en JavaScript del navegador a través de la biblioteca sql-formatter, sin enviar contenido SQL o configuración a servidores externos en la red. La carga de archivos lee el contenido de archivos locales a través de la API HTML5 FileReader sin transmisión de red. La función de compartir URL codifica el SQL comprimido en la parte hash de la URL (el contenido después de # nunca se envía a los servidores con las solicitudes HTTP), solo se descomprime y muestra localmente en el navegador. No utiliza seguimiento de cookies ni recopila contenido SQL introducido por el usuario o datos de comportamiento de uso. Después de cerrar o actualizar la página, el contenido de entrada y el estado de configuración se restablecen automáticamente (los registros de historial solo se guardan en el localStorage local).
Authoritative References
- GitHubDocumentación oficial de sql-formatter
- codemirror.netSitio web oficial de CodeMirror 6
- WikipediaWikipedia - Sintaxis SQL
- Simulador de Daltonismo
- Convertidor de colores
- Convertidor de .htaccess a Nginx
- Conversor de SQL
- Analizador de Cookies
- Generador de Expresiones Cron
- Validador de Expresiones Cron
- Formateador de CSS
- Minificar CSS
- CSV a Excel
- Conversor de Monedas
- Comparador de Diferencias
- Generador de Favicon
- Formateador de XML
- Convertidor Hexadecimal
- Formateador de HTML
- Minificador de HTML
- HTML a Markdown
- Markdown a HTML
- Formatear JavaScript
- Minificador de JS
- Formateador de JSX
- Minificador de JSX
- Agrupación de palabras clave
- Generador Lorem Ipsum
- Generador de Tablas Markdown
- Generador de Meta Tags
- Generador de contraseñas
- Verificador de fortaleza de contraseña
- Generador de Códigos QR/Códigos de Barras
- Probador de Expresiones Regulares
- Generador de Slugs
- Constructor de SQL
- Formateador de SQL
- Contador de Palabras
- Herramienta de Tiempo
- Formateador de TS
- Minificador de TS
- Formateador de TSX
- Minificador de TSX
- Conversor Unix Timestamp
- Generador UUID
- Formateador de YAML
- Convertidor de casos