ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

PostgreSQLでテーブル情報をCSVファイルに出力する方法

データベースに接続してCSVファイルを取得したいことが度々あるが、その度にやり方を忘れてしまっているのでここにメモします。

CSV出力の構文

PostgreSQLでは"psql"で接続後に以下のコマンドを実行すればCSVファイルが出力されます。

デフォルト

対象テーブルの全カラムが出力対象となります。

\COPY {{table名}} TO '{{出力ファイルパス}}' WITH CSV DELIMITER ',';
カラムを選択してCSV出力

出力するカラムを指定したい場合は以下のようにします。

\COPY {{table名}({{column名1}, {{column名2}, {{column名3}) TO '{{出力ファイルパス}}' WITH CSV DELIMITER ','
カラム名もCSV出力

CSVの先頭行(ヘッダ)にカラム名を出力する場合は、HEADER という指定をします。

\COPY {{table名}} TO '{{出力ファイルパス}}' WITH CSV DELIMITER ',' HEADER;
値をダブルウォーとで出力

データをダブルクォート(")で囲みたい場合は”FORCE QUOTE *”とコマンドを追加します。

\COPY ({SQL文(SELECT文)}) TO '{{出力ファイルパス}}' WITH CSV DELIMITER ',' HEADER FORCE QUOTE *