PostgreSQL の初歩的 Tips 3つ
最近なんだか胃の調子が悪いのでサプリメントなるものに手を出そうとしている kimoto です。 あと運動もしてます。やせるぞ!
まあそれは割とどうでもいいんですが、以前にMySQL の初歩的 Tips 3つというエントリーを書いたことがあります。
これ、PostgreSQL だとどうするんだろ?っていう質問がありましたので、ちょっと書いてみます。
データの表示を立て並びにする
これは、MySQL の場合はクエリの最後に「\G」を付ける事で可能でした。
こちら、PostgreSQL の場合は「\x」をコマンドします。ポイントは、このコマンドはスイッチになっていて、最後に付けるのではなくこのコマンドを打つたびに on と off が切り替わるという事です。
dbname=# SELECT * FROM member;
id | name | gender | age | blood | post
------+----------+--------+------+---------+-----------
1 | tanaka | male | 25 | o | programmer
2 | nakayama | male | 23 | unknown | designer
(2 rows)
↓
dbname=# \x
Expanded display is on.
dbname=# SELECT * FROM member;
-[ RECORD 1 ]------
id | 1
name | tanaka
gender| male
age | 25
blood | o
post | programmer
-[ RECORD 2 ]------
id | 2
name | nakayama
gender| male
age | 23
blood | unknown
post | designer
(2 rows)
INDEX の有効性を調べる
これは MySQL と同じく「EXPLAIN」で OK なので省略します。
データ取得の結果を CSV などで書きだす
こちらはちょっと MySQL とは操作が異なります。
dbname=# \o data.csv
dbname=# \a
Output format is unaligned.
dbname=# \pset fieldsep ','
Field separator is ','.
dbname=# SELECT * FROM member;
dbname=# \o
このように操作します。
まず \o で出力場所を指定します。
\a で「行をそろえない」と命令します。
\pset fieldsep でセパレータを指定します。この場合は CSV ファイルなのでカンマを指定しています。
その後 SQL を投げます。
最後に \o で出力場所を戻します。
これで、指定した名前で CSV ファイルが出力されているはずです。