こんにちは、さるまりんです。
開発をしている際にテーブルの中身を確認したり、ある条件でデータを抽出したりとSQL
の結果をファイルに吐き出したい時があります。
今回はPostgreSQLでそれをする方法をメモします。
PostgreSQLのクライアントプログラムpsql
を使ってクエリの結果をcsv
ファイルに出力するにはpsql
コマンドでデータベースにつないでから
1. 出力先をファイルに
# \o [出力先ファイルパス]
2. 文字揃えをオフに
# \a
3. 区切り文字を設定
# \f '[区切り文字]'
4. SQLを実行
# [SQL文]
5. 出力先を戻す
# \o
実行例です。
# \o output.csv
# \a
# \f ','
# select * from users;
# \o
上の5行で、出力先をoutput.csv
に設定、文字揃えをオフにし、区切り文字をカンマに設定、users
テーブルの全てを出力して、出力先を元に戻しています。
psql
コマンドでシェルの状態でも同様のことができます。
$ psql [データベース名など接続情報] -c "SQL文" -A -F, > [出力ファイル名]
-A
で文字揃えをオフに、-F
で区切り文字を指定しています。
上記の例は
$ psql -d database_name -U user_name -c "select * from users;" -A -F, > output.csv
簡単なものであれば独自のプログラムを書かなくてもデータ抽出できそうですね。
読んでくださってありがとうございました。
それではまた!