Formater zapytań SQL [zamknięty]

14

Czy są jakieś programy / wtyczki / rozszerzenia do formatowania zapytań SQL (oparte na Linuksie)?

Używam PostgreSQL i MySQL, ale inne DB są również mile widziane.

Mogę używać maszyny wirtualnej do testowania, ale wolę rozwiązanie oparte na systemie Linux (Ubuntu).

Widziałem wersję online, ale nic nie można było zainstalować.

IDE oparte na Eclipse są również plusem

Przykład:

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

do czegoś takiego

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

Oto przykład online:

Ale wolałbym, żeby to było w lokalnym środowisku

Związane z:

AKTUALIZACJA:

Patrząc na to:

AKTUALIZACJA KOŃCOWA:

Chociaż może to być przesada, Jet Brains ma nowe IDE bazy danych, które ma kilka świetnych opcji ponownego formatowania

Phill Pafford
źródło
Czy już rzuciłeś okiem na formatyzator SQLinForm ( sqlinform.com ). Jest napisany w Javie, a zatem działa na Linuksie i ma wersję wiersza poleceń oraz dostępny interfejs API
Guido

Odpowiedzi:

8

pgAdmin jest wyposażony we wbudowany formatator zapytań. Utworzyłbyś widok, aby zobaczyć zapytanie sformatowane w następujący sposób:

wprowadź opis zdjęcia tutaj

Oczywiście niecytowane identyfikatory mieszanych liter będą przesyłane do małych liter. (Ale uważałbym to za błogosławieństwo).

I hałasu słowa takie jak ASCIN ORDER BYzostaną przycięte.

Wreszcie widok musiałby być prawidłowy w bazie danych na początek. Zatem nie końca to, o co prosiłeś. Kwerendy są faktycznie odtwarzane na podstawie inżynierii wstecznej z definicji widoku.

Erwin Brandstetter
źródło
1
Przepraszam, myślę, że źle zrozumiałeś pytanie, sam mogę sformatować. To, czego szukam, to coś takiego w poleceniu lub IDE. Przykład: chciałbym podświetlić zapytanie i nacisnąć ctrl + shift + F, to automatycznie wcięcie, wszystkie słowa kluczowe na GÓRNE, każde polecenie / słowo kluczowe zaczyna się w nowym wierszu itp. Więc jeśli ktoś napisze lub skryptuje to długie zapytanie, po prostu chciałby szybko sformatować go zamiast robić to ręcznie. Oto przykład online: dpriver.com/pp/sqlformat.htm
Phill Pafford
1
@PhillPafford: Tak, nie do końca to, czego szukasz. Najbardziej zbliżona do formatera zapytań PostgreSQL, jaki znam. To nie znaczy, że nic tam nie ma.
Erwin Brandstetter
Czy próbowałeś jetbrains.com/dbe
Phill Pafford
3

Chociaż bardziej ogólny (SQL zamiast pgSQL), fsqlf ( http://sourceforge.net/projects/fsqlf/ ) jest wierszem poleceń lub programem GUI typu open source do formatowania SQL. Obsługuje plik formatting.conf, który zapewnia dużą elastyczność w wyglądzie produktu końcowego.

Przykłady:

  [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
źródło
0

BlancoSqlEditorPlugin to formatator SQL oparty na wtyczce Eclipse. Jest napisany w Javie i jest OSS.

Tosiki Iga
źródło
Czy jest dostępna angielska wersja tej strony?
dezso
0

Edytor zapytań MySQL Workbench natywnie udostępnia narzędzie do formatowania zapytań SQL: wystarczy kliknąć ikonę „upiększania”, jak pokazano poniżej (czerwone kółko). Pamiętaj, że nie zmienia to wielkości liter operatorów SQL. ( Przesłałem raport o błędzie ).

wprowadź opis zdjęcia tutaj

Franck Dernoncourt
źródło
-1

SQLinForm ( http://www.sqlinform.com ) jest oparty na Javie i dlatego może działać w środowisku Linux. Mają interfejs API i wersję wiersza poleceń, których można łatwo używać w skryptach.

Guido
źródło