PostgreSQLのテーブルデータを出力する方法②

postgresql-psql-csv-tsv postgreSQL

psqlコマンドでテーブルのデータを抽出する方法を紹介する。

psqlコマンドでデータ出力(デフォルト)

psqlコマンドでテーブルからデータを抽出し、ファイルに出力する方法は以下のように書けば、できる。

psql データベース名 -c “SQL文”> CSVファイル名
実行例:
$ psql -c “select * from test;” > test.csv
$ cat test.csv
結果:
  id  | name | age
——+——+—–
 0001 | fuji |  99
 0002 |      |  88
(2 rows)

psqlコマンドでデータ出力(カンマ区切りCSV) 

psql データベース名 -c “SQL文” -A -F, > CSVファイル名
説明:
-A 位置揃えなしの出力モードに切り替えます (デフォルトの出力モードは位置揃えありです)。
-F separator separatorを位置揃えを行わない出力におけるフィールド区切り文字として使用します。 \pset fieldsepもしくは\fと同じ効力を持ちます。
実行例:
$ psql -c “select * from test;” -A -F , > test.csv
$ cat test.csv
結果:
id,name,age
0001,fuji,99
0002,,88
(2 rows)

psqlコマンドでデータ出力(タブ区切りTSV)

psql データベース名 -c “SQL文” -A -F $’\t’ > CSVファイル名
実行例:
$ psql -c “select * from test;” -A -F $’\t’ > test.csv
$ cat test.csv
id      name    age
0001    fuji    99
0002            88
(2 rows)

出力列名ヘッダと行数フッタの非表示

psql データベース名 -t -c “SQL文” -A -F $’\t’ > CSVファイル名
実行例:
$ psql -t -c “select * from test;” -A -F $’\t’ > test.csv
$ cat test.csv
0001    fuji    99
0002            88
タイトルとURLをコピーしました