SQL Query Formatter [終了]


14

(Linuxベースの)SQLクエリフォーマットプログラム/プラグイン/拡張機能はありますか?

私はPostgreSQLとMySQLを使用していますが、他のDBも歓迎します。

VMを使用してテストできますが、Linux(Ubuntu)ベースのソリューションを希望します。

オンライン版を見たことがありますが、インストール可能なものはありません。

EclipseベースのIDEもプラスです

例:

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

のようなものに

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

オンラインの例を次に示します。

しかし、私はむしろこれがローカル環境になりたい

関連:

更新:

これを見て:

最終更新:

これはやり過ぎかもしれませんが、Jet Brainsにはいくつかの素晴らしい再フォーマットオプションを備えた新しいデータベースIDEがあります


既にSQLinForm(sqlinform.com)フォーマッターをご覧になっていますか。これは、Javaで書かれたので、Linux上で実行され、コマンドラインバージョンと利用可能なAPIを持っている
グイド・

回答:


8

pgAdminにはクエリフォーマッタが組み込まれています。次のような形式のクエリを表示するビューを作成します。

ここに画像の説明を入力してください

もちろん、引用符で囲まれていない大/小文字混合の識別子は小文字にキャストされます。(しかし、これは祝福だと思います。)

またASC、inのようなノイズワードORDER BYは削除されます。

最後になりましたが、最初に、データベース内でビューが有効である必要があります。正確にあなたが求めたものではありません。クエリは、実際にはビュー定義からリバースエンジニアリングされます。


1
ごめんなさい、あなたは質問を誤解したと思います、私はこれを自分でフォーマットできます。私が探しているのは、コマンドまたはIDEでこれを行うことです。例:クエリを強調表示してctrl + shift + Fを押すと、これは自動インデント、すべてのキーワードはUPPERになり、各コマンド/キーワードは新しい行で始まります...これを手作業で行う代わりに、簡単にフォーマットする方法が必要です。ここでは、オンラインでの例です:dpriver.com/pp/sqlformat.htm
フィルPafford

1
@PhillPafford:ええ、あなたが探しているものではありません。私が知っているPostgreSQLクエリフォーマッタに最も近いもの。そこに何もないという意味ではありません。
アーウィンブランドステッター


3

より一般的ですが(pgSQLではなくSQL)、fsqlf(http://sourceforge.net/projects/fsqlf/)は、SQLをフォーマットするためのコマンドラインまたはGUIプログラム、オープンソースです。これは、最終製品の外観に大きな柔軟性を持たせるformat.confファイルを持つことをサポートします。

例:

  [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)はJavaに基づいているため、Linux環境で実行できます。これらには、スクリプトで簡単に使用できるAPIとコマンドラインバージョンがあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.