DB

pgAdminからCSEに出戻った・・・

投稿日:2013/09/05 更新日:

Windowsを使っていて、PostgreSQLに直接クエリーを発行したい場合は、主にツールを使って発行する場合が多いです。
ローカルにあるテストサーバーに対しては特にツールを使うことが多いです。
自分の場合CSEを使っていたのですが、先日Windows7を新規インストールしたのに伴い、pgAdminを使ってみました。
ですが、8日程度でギブアップ・・・。この度、CSEに戻ってまいりました。

その理由とは・・・。

簡単に2つのソフトの概要を紹介します。

CSE

Tsumiki Softwareさんが作成されているツールです。歴史は結構古いですよ。
自分が学生の時(2002年)の時から使っていたので、それくらいの歴史があります。
機能追加などは、あんまり無いのである意味完成しているソフトと言ってもよいと思います。
基本的な機能は、CRUDクエリーの発行になりますが、SELECTした結果が表示された票をGUI上から編集することもできます。

pgAdmin

PostgreSQLの管理といえば、pgAdminでしょ!
歴史はあんまり知りませんが、MacでもWindowsでも動くみたいですね。
CRUDの発行はもちろんPostgreSQLに特化しているということもあり、テーブルのSQL文などが表示されたりと至れり尽くせりなツールとなっております。

なぜpgAdminからCSEに乗り換えたのか

おそらくPotgreSQLの管理という意味では、pgAdminはとてもよいツールなのだと思います。
ですが、通常のSELECT文の発行などをする時にCSEに非常に便利な機能があるんです。
それは、SQL崩しという機能です。
どういうことかというと・・・。
例えば、

select * from users WHERE flag = '1' ORDER BY id

というSQL文があるとしますよね。SQL崩しを使うとこのSQL文が

SELECT
    *
FROM
    users
WHERE
    flag = '1'
ORDER BY
    id

のように、SQL文を整形できるんです。LEFT JOIN とかCASEとかあると、なかなか思い通りのSQL文の整形はしてくれませんが、デバッグ出力したSQL文を貼り付けて整形して実行というのは、デバッグ上すごい便利なんです。ましてやO/Rマッパーなんか使うと自分で書いたSQL文が発行されるわけではないので、SQL文が整形されるのは非常に助かります。

pgAdminは自分が探した限りでは、このSQL文の整形ができないみたいです。
デバッグ時の作業は主にSELECT文の発行が多いので、この機能は本当に役に立ちます。

まとめ

意味合い的に、pgAdminは管理ツール、CSEはクエリツールみたいな感じなので比較対象としては違いますけどね。
pgAdminはサーバー全体としてデータベースを管理できますが、CSEはデータベース単位になります。
結局のところ、使い分けになるんじゃないでしょうか。
CSE使っているのは、軽いのとSQL崩しが便利からなんですけどね。

-DB
-

執筆者:


  1. より:

    SQL整形ツールは、以下がおすすめですよ

    http://www.geocities.jp/rgyxd366/

    • beeete2 より:

      雨さん、コメントありがとうございます。
      クリっぽボードで整形できるし、外部起動も可能なら、かなり便利そうですね!
      使わせて頂きます。

      貴重な情報ありがとうございます。

comment

メールアドレスが公開されることはありません。

関連記事

2018年版 WindowsユーザーのためのPostgreSQLクライアント

2015年にWindowsユーザーのためのPostgreSQL用クライアントという記事を書きました。 WindowsユーザーのためのPostgreSQL用クライアント あれからもう2年以上経過したので …

WindowsユーザーのためのPostgreSQL用クライアント

[box class=”blue_box” title=”2018-03-11 追記”]新しく2018年版も書きました。 2018年版 Windowsユ …

PostgreSQL 10.0をCentOS 7にインストール

久々にPostgreSQLをインストールしたのでメモ。 昔はソースからコンパイルしてたんですけど今はyumでインストールしてます。 2018-02-28追記 CentOS標準レポジトリからPostgr …

MySQL(MariaDB)でPostgreSQLのgenerate_seriesっぽいことをする

PostgreSQLにはgenerate_seriesという集合を返す関数があるのですが、これを使うと連続した値を生成することができます。 例えば各レコードに保存されている1%単位の度数(freque …