Formatador de consultas SQL [fechado]


14

Existem programas / plugins / extensões de formatação de consultas SQL (baseados em Linux)?

Eu uso PostgreSQL e MySQL, mas outros bancos de dados também são bem-vindos.

Posso usar uma VM para testar, mas prefere uma solução baseada em Linux (Ubuntu).

Eu vi uma versão online, mas nada como instalável.

IDEs baseados em Eclipse também são uma vantagem

Exemplo:

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

para algo como

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

Aqui está um exemplo online:

Mas eu prefiro que isso seja em um ambiente local

Palavras-chave:

ATUALIZAR:

Olhando para isso:

ATUALIZAÇÃO FINAL:

Embora isso possa ser um exagero, o Jet Brains possui um novo IDE de banco de dados que oferece ótimas opções de reformatação


Você já deu uma olhada no formatador SQLinForm ( sqlinform.com ). Ele é escrito em Java e, portanto, funciona em Linux e tem uma versão de linha de comando e API disponíveis
Guido

Respostas:


8

O pgAdmin vem com um formatador de consultas incorporado. Você criaria uma visualização para ver a consulta formatada assim:

insira a descrição da imagem aqui

Obviamente, identificadores de maiúsculas e minúsculas não citados serão convertidos para minúsculas. (Mas eu consideraria isso uma bênção.)

E palavras de ruído como ASCem ORDER BYserão cortadas.

E por último, mas não menos importante, a visualização precisaria ser válida no banco de dados para começar. Portanto, não é exatamente o que você pediu. As consultas são realmente projetadas de forma reversa a partir da definição da visualização.


1
Desculpe, acho que você não entendeu a pergunta, posso formatar isso sozinho. O que estou procurando é algo para fazer isso em um comando ou IDE. Exemplo: eu destacaria a consulta e pressione ctrl + shift + F, isso recuaria automaticamente, todas as palavras-chave para UPPER, cada comando / palavra-chave começará em uma nova linha, etc. gostaria de uma maneira rápida de formatá-lo, em vez de fazer isso manualmente. Aqui está um exemplo online: dpriver.com/pp/sqlformat.htm
Phill Pafford

1
@PhillPafford: Sim, não é exatamente o que você está procurando. A coisa mais próxima de um formatador de consultas do PostgreSQL que eu conheço. Não significa que não há nada lá fora.
Erwin Brandstetter

Já experimentou jetbrains.com/dbe
Phill Pafford

3

Embora seja mais genérico (SQL em vez de pgSQL), o fsqlf ( http://sourceforge.net/projects/fsqlf/ ) é uma linha de comando ou programa de GUI, de código aberto, para formatar o SQL. Ele suporta ter um arquivo formatting.conf que permite muita flexibilidade na aparência do produto final.

Exemplos:

  [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

O SQLinForm ( http://www.sqlinform.com ) é baseado em Java e, portanto, pode ser executado no ambiente Linux. Eles possuem uma API e uma versão da linha de comando que você pode usar facilmente em seus scripts.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.