Formateador de consultas SQL [cerrado]


14

¿Hay algún programa / plugin / extensión de formato de consulta SQL (basado en Linux)?

Uso PostgreSQL y MySQL, pero también son bienvenidos otros DB.

Puedo usar una VM para probar, pero preferiría una solución basada en Linux (Ubuntu).

He visto una versión en línea pero nada como instalable.

Los IDE basados ​​en Eclipse también son una ventaja

Ejemplo:

select f1, f2, fname, lName from tblName where f1 = true and fname is not null order by lName asc

a algo como

SELECT f1, f2, fname, lName
FROM tblName
WHERE f1 = true
AND fname IS NOT NULL
ORDER BY lName ASC

Aquí hay un ejemplo en línea:

Pero prefiero que esto sea en un entorno local

Relacionado:

ACTUALIZAR:

Mirando esto:

ACTUALIZACIÓN FINAL:

Si bien esto puede ser una exageración, Jet Brains tiene un nuevo IDE de base de datos que tiene algunas excelentes opciones de reformateo


¿Ya echó un vistazo al formateador SQLinForm ( sqlinform.com )? Está escrito en Java y, por lo tanto, se ejecuta en Linux y tiene una versión de línea de comandos y API disponible
Guido

Respuestas:


8

pgAdmin viene con un formateador de consultas incorporado. Crearía una vista para ver la consulta con el siguiente formato:

ingrese la descripción de la imagen aquí

Por supuesto, los identificadores de mayúsculas y minúsculas sin comillas se convertirán a minúsculas. (Pero consideraría esto una bendición).

Y las palabras ruidosas como ASCen ORDER BYse recortarán.

Y por último, pero no menos importante, la vista tendría que ser válida dentro de la base de datos para empezar. Así que no es exactamente lo que pediste. Las consultas son en realidad ingeniería inversa de la definición de vista.


1
Lo siento, creo que entendiste mal la pregunta, puedo formatear esto yo mismo. Lo que estoy buscando es algo para hacer esto en un comando o IDE. Ejemplo: destacaría la consulta y presionar ctrl + shift + F, esto sangraría automáticamente, todas las palabras clave en SUPERIOR, cada comando / palabra clave comenzará en una nueva línea, etc. Así que si alguien escribe o escribe esta larga consulta, simplemente quisiera una forma rápida de formatearlo en lugar de hacerlo a mano. Aquí hay un ejemplo en línea: dpriver.com/pp/sqlformat.htm
Phill Pafford el

1
@PhillPafford: Sí, no es exactamente lo que estás buscando. Lo más parecido a un formateador de consultas PostgreSQL que conozco. No significa que no haya nada por ahí.
Erwin Brandstetter


3

Si bien es más genérico (SQL en lugar de pgSQL), fsqlf ( http://sourceforge.net/projects/fsqlf/ ) es una línea de comando o programa GUI, de código abierto, para formatear SQL. Admite tener un archivo formatting.conf que le permite mucha flexibilidad en la apariencia del producto final.

Ejemplos:

  [wwalker@speedy:~] 
$ echo "select f1, f2, fname, lName from tblName where f1 = true and fname is not null order by lName asc" | fsqlf 

SELECT
  f1
, f2
, fname
, lName
FROM tblName
WHERE f1=true
AND fname is not null
ORDER BY lName asc
  [wwalker@speedy:~] 
$ vim formatting.conf # 2 character change
  [wwalker@speedy:~] 
$ echo "select f1, f2, fname, lName from tblName where f1 = true and fname is not null order by lName asc" | fsqlf 

SELECT
 f1 ,
 f2 ,
 fname ,
 lName
FROM tblName
WHERE f1=true
AND fname is not null
ORDER BY lName asc
  [wwalker@speedy:~] 
$ vim formatting.conf # 1 character change
  [wwalker@speedy:~] 
$ echo "select f1, f2, fname, lName from tblName where f1 = true and fname is not null order by lName asc" | fsqlf 

SELECT
 f1 , f2 , fname , lName
FROM tblName
WHERE f1=true
AND fname is not null
ORDER BY lName asc
  [wwalker@speedy:~] 
$ 




-1

SQLinForm ( http://www.sqlinform.com ) se basa en Java y, por lo tanto, puede ejecutarse en un entorno Linux. Tienen una versión de API y línea de comandos que puede usar fácilmente en sus scripts.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.