SQLの実行結果をcsv,tsv,htmlとかいろいろ出力する方法
出力するファイルの指定
このコマンドの後のSQLの結果がファイルに書き込まれる(権限ないと書き込めない)
\o /home/hoge/foo.txt
以降、出力するフォーマットに関しての設定
コマンド | 効果 |
---|---|
\a | 出力結果を綺麗に並べる/並べない |
\f [string] | 区切り文字を指定(\aが有効だとそちらが優先) |
\H | 実行結果をhtmlにして出力(table) |
\t | 実行結果の件数とかだす/ださない(3 rowsこういうの) |
\T [string] | tableに属性付与できる |
\x | カラムを縦に表示する/表示しない |
使いそうなのはこのあたりかなと思う。
\a,\xの出力結果
\a
id | name | created_at -----+--------------+---------------------- 1 | hoge | 2009-12-18 12:00:00 2 | foo | 2009-12-18 12:00:00 3 | hello | 2009-12-18 12:00:00 (3 rows)
\x
-[ RECORD 1 ]-------------------------- id | 1 name | hoge created_at | 2009-12-18 12:00:00 -[ RECORD 2 ]-------------------------- id | 2 name | foo created_at | 2009-12-18 12:00:00 -[ RECORD 3 ]-------------------------- id | 3 name | hello created_at | 2009-12-18 12:00:00
こんなん。いつもコマンドラインで見るのとおんなじ感じに出力される。
\fの区切り文字
区切り文字の設定によって変わると思うけどcsv,tsvとかよく使うような。
#カンマ区切り \f ',' #タブ区切り \f '\t'
\Tの書き方
たぶんこんなん。あってるといいな(ぇ
\T 'class="hoge" width="100%" height="600"'
テーブル自体をファイルに出力したい場合はCOPYコマンドを使うといいです