Formateur de requêtes SQL [fermé]

14

Existe-t-il des programmes / plugins / extensions de mise en forme de requêtes SQL (basés sur Linux)?

J'utilise PostgreSQL et MySQL mais les autres bases de données sont également les bienvenues.

Je peux utiliser une machine virtuelle pour tester, mais je préférerais une solution basée sur Linux (Ubuntu).

J'ai vu une version en ligne mais rien comme un installable.

Les IDE basés sur Eclipse sont également un plus

Exemple:

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

à quelque chose comme

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

Voici un exemple en ligne:

Mais je préfère que ce soit dans un environnement local

En relation:

MISE À JOUR:

En regardant ceci:

MISE À JOUR FINALE:

Bien que cela puisse être une surpuissance, Jet Brains a un nouvel IDE de base de données qui propose d'excellentes options de reformatage.

Phill Pafford
la source
Avez-vous déjà regardé le formateur SQLinForm ( sqlinform.com ). Il est écrit en Java et fonctionne donc sur Linux et dispose d'une version en ligne de commande et d'une API disponible
Guido

Réponses:

8

pgAdmin est livré avec un formateur de requête intégré. Vous créeriez une vue pour voir la requête formatée comme ceci:

entrez la description de l'image ici

Bien entendu, les identificateurs de casse mixte non cités seront convertis en minuscules. (Mais je considérerais cela comme une bénédiction.)

Et les mots parasites comme ASCdans ORDER BYseront supprimés.

Et enfin et surtout, la vue devrait être valide dans la base de données pour commencer. Ce n'est donc pas exactement ce que vous avez demandé. Les requêtes sont en réalité rétroconçues à partir de la définition de la vue.

Erwin Brandstetter
la source
1
Désolé, je pense que vous avez mal compris la question, je peux le formater moi-même. Ce que je recherche, c'est quelque chose à faire dans une commande ou un IDE. Exemple: je mettrais en surbrillance la requête et appuierais sur ctrl + shift + F, cela mettrait automatiquement en retrait, tous les mots clés vers UPPER, chaque commande / mot clé commence sur une nouvelle ligne, etc ... Donc, si quelqu'un tape ou écrit cette longue requête, je viens aimerait un moyen rapide de le formater au lieu de le faire à la main. Voici un exemple en ligne: dpriver.com/pp/sqlformat.htm
Phill Pafford
1
@PhillPafford: Oui, pas exactement ce que vous recherchez. La chose la plus proche d'un formateur de requêtes PostgreSQL que je connaisse. Cela ne veut pas dire qu'il n'y a rien.
Erwin Brandstetter
Avez-vous essayé jetbrains.com/dbe
Phill Pafford
3

Bien que plus générique (SQL au lieu de pgSQL), fsqlf ( http://sourceforge.net/projects/fsqlf/ ) est une ligne de commande ou un programme GUI, open source, pour formater SQL. Il prend en charge la création d'un fichier formating.conf qui vous offre une grande flexibilité dans l'apparence du produit final.

Exemples:

  [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:~] 
$ 
Wayne Walker
la source
0

BlancoSqlEditorPlugin est un formateur SQL basé sur le plugin Eclipse. Il est écrit en Java et est OSS.

Tosiki Iga
la source
Existe-t-il une version anglaise de cette page?
dezso
0

L'éditeur de requêtes de MySQL Workbench fournit nativement un formateur de requêtes SQL: il vous suffit de cliquer sur l'icône "embellir" comme illustré ci-dessous (cercle rouge). Notez que cela ne change pas la casse des opérateurs SQL. (J'ai soumis un rapport de bogue .)

entrez la description de l'image ici

Franck Dernoncourt
la source
-1

SQLinForm ( http://www.sqlinform.com ) est basé sur Java et peut donc fonctionner dans un environnement Linux. Ils ont une version API et ligne de commande que vous pouvez facilement utiliser dans vos scripts.

Guido
la source