PostgresでCSV出力を簡単に行う方法【COPYコマンドを使おう】

PostgresでCSV出力を簡単に行う方法【COPYコマンドを使おう】 プログラミング
PostgresでCSV出力を簡単に行う方法【COPYコマンドを使おう】

アプリ開発を行っているとPostgresでCSV出力したい時ってありますよね。

難しい…と思うかもしれませんが意外と簡単にできてしまいます。

今回はそのあたりを解説したいと思います。

このブログは現役のエンジニア(プログラマー歴が約12年)の僕(よしたか)が2019年12月後半から日々更新しております。

もしもアフィリエイトは会員登録後も無料です!
今すぐ会員登録してアフィリエイトを始めよう!

PostgresでCSV出力を行う方法

ではCSV出力を行う方法を見ていきたいと思います。

COPYコマンド

『COPY』コマンドを利用すると簡単にCSV出力ができます。

COPYコマンドの使い方

『COPY』コマンドでCSV出力する方法ですが、

COPY ( select * ~ ) TO '/tmp/output.csv' WITH CSV DELIMITER ',';

このように実行すると、

『/tmp/output.csv』に『カンマ』区切りで出力できます。

簡単ですよね。

『select * ~』個所は適時検索を入れたり必要なカラムを指定したりできます。(普通のセレクト文ですね)

タブ区切り(TSV)での出力も可能

CSVだけでなく、TSVでの出力も可能です。

COPY ( select * ~ ) TO '/tmp/output.csv' WITH CSV DELIMITER E'\t';

このように実行すると、TSVで出力されます。

各項目をダブルクオート(")で囲んで出力も可能

エクセルで利用したい時にダブルクオート(")で囲みたい時もありますよね。

COPY ( select * ~ ) TO '/tmp/output.csv' WITH CSV FORCE QUOTE *;

このように実行すると、ダブルクオート(")で囲まれて出力できます。

まとめ

この記事のおさらい
  • PostgresでCSV出力したい場合は『COPY』コマンドを使おう

いかがだったでしょうか。

DBからCSV出力したい時って何かしらアプリの運用をしている上で必ず出てきます。

こういった1つ1つの事って以外と忘れていたりするので、是非参考になればと思います。