クエリの実行時間の計測

2007-04-20
このエントリーをはてなブックマークに追加

¥timing

と叩くと、
「Timing is on.」
と表示され、以降クエリを実行するたびにその実行時間が表示される。

「Time: 3.996 ms」

こんな風に表示されると、explainでコストを計測するより分かりやすいような気がします。

もう一度¥timingを叩くと、オフになります。

クエリ結果のファイル出力

2007-02-16
このエントリーをはてなブックマークに追加

psqlのオプションで
-o filenameをつけると、結果をすべてファイルに出力してくれます。

psql -U ユーザ名 -c ‘SELECT * FROM HOGE;’ -o ‘hoge.txt’;

これで、問い合わせ結果はhoge.txtに書き出されます。
が、postgresが書き込みのできるディレクトリでないと書き込みエラーが出ます。

継続月数の取得

2007-01-17
このエントリーをはてなブックマークに追加

select to_char(age(date(‘2007-1-1’),date(‘2005-9-6′)),’MM’ )::int + to_char(age(date(‘2007-1-1’),date(‘2005-9-6′)),’YYYY’ )::int * 12 as date_m;

OracleでいうところのMONTHS_BETWEENですね。
何ヶ月継続、なんていうデータ抜きたいときに使えるかと。

PostgreSQLのバックアップとレストア

2006-10-06
このエントリーをはてなブックマークに追加

8.1.4で動作、他のバージョンは未確認

バックアップ

pg_dump -U 【DBオーナ名】-f 【出力先パス】 【DB名】

レストア

psql -U 【DBオーナ名】【DB名】 < 【ダンプファイルのパス】

何もないトコにレストアするなら、ユーザとDBを先に作成しておいて、そこにレストアする。

バックアップファイルって言っても、構成やデータをテキストファイルに書き出しているだけ。

まぁ、おかげで加工はしやすいし、内容の把握もしやすいです。

PostgreSQLのNULL判定

2006-09-04
このエントリーをはてなブックマークに追加

select coalesce(カラム名, ‘0’);

指定したカラムがNULLだったら「0」が返って来る。

select coalesce(カラム名その1, カラムその2名,’0′);

「カラム名その1」がNULLだったら「カラムその2」の値を使う。「カラムその2」がNULLだったら「0」を返す。

「ISNULL」はポスグレにはないらしい。

‘YYYYMMDD’形式の文字列から年齢を取得する

2006-06-19
このエントリーをはてなブックマークに追加

SELECT EXTRACT(YEARS FROM AGE(TO_DATE(文字列格納カラム,’YYYYMMDD’))) AS USER_AGE FROM テーブル名;

指定したテーブルのカラム一覧の取得

2006-06-14
このエントリーをはてなブックマークに追加

select attname from pg_attribute where attrelid = (select oid from pg_class where relname = ‘テーブル名’) and attnum > 0 and atttypid > 0;

格納しているテーブル一覧の出力

2006-03-24
このエントリーをはてなブックマークに追加

SELECT * FROM PG_TABLES;

もちろんWHERE条件を加えて絞り込むことも可能。まずは一覧を表示してみればどういう情報が出力されるのかわかる。

d

でも十分なんですけどね。