PostgreSQLテーブルをCSVファイルにエクスポートする

概要:このチュートリアルでは、PostgreSQLテーブルからCSVファイルにデータをエクスポートするさまざまなテクニックを学びます。

前回のチュートリアルでは、CSVファイルからテーブルにデータをインポートする方法を紹介しました。 ここでは、CSVファイルからデータをインポートするために作成したpersonsテーブルを使用します。

posgresql export csv

persons テーブルのデータを確認してみましょう。

SELECT*FROMpersons;
Code language: SQL (Structured Query Language) (sql)
posgresql import csv from pgAdmin tool persons table

テーブルには2つのレコードがあります。

COPY文を使ってテーブルのデータをCSVにエクスポートする

テーブルのデータをCSVファイルにエクスポートする最も簡単な方法は、COPYpersonsC:\tmppersons_db.csvという名前のCSVファイルにエクスポートしたい場合は、次のようなステートメントを使用します。

COPY persons TO 'C:\tmp\persons_db.csv' DELIMITER ',' CSV HEADER;
Code language: SQL (Structured Query Language) (sql)

PostgreSQLは、personspersons_db.csvファイルにエクスポートします。

postgresql export csv

場合によっては、テーブルのいくつかの列だけからデータをCSVファイルにエクスポートしたいことがあります。 そのためには、COPYfirst_namelast_namepersonsemailperson_partial_db.csv

COPY persons(first_name,last_name,email) TO 'C:\tmp\persons_partial_db.csv' DELIMITER ',' CSV HEADER;
Code language: SQL (Structured Query Language) (sql)
postgresql export csv partially

ヘッダをエクスポートしたくない場合は、以下のようになります。 テーブルのカラム名を含むヘッダーをエクスポートしたくない場合は、HEADERCOPYpersonsemail列のデータのみをCSVファイルにエクスポートします。

COPY persons(email) TO 'C:\tmp\persons_email_db.csv' DELIMITER ',' CSV;
Code language: SQL (Structured Query Language) (sql)
postgresql export csv partially without header

COPYコマンドで指定したCSVファイル名は、サーバーが直接書き込まなければならないことに注意してください。 つまり、CSVファイルはあなたのローカルマシンではなく、データベースサーバーのマシンに置かれていなければなりません。

テーブルからCSVファイルにデータをエクスポートするには、\copyコマンドを使用します

リモートのPostgreSQLデータベースサーバーにアクセスできるが、ファイルに書き込むための十分な権限がない場合、PostgreSQLの組み込みコマンド\copyを使用することができます。

\copyCOPY文を実行します。 ただし、サーバーがCSVファイルを書き込む代わりに、psqlがCSVファイルを書き込み、データをサーバーからローカルファイルシステムに転送します。 \copyコマンドを使用するには、ローカルマシンに対する十分な権限が必要です。 このコマンドにはPostgreSQLのスーパーユーザー権限は必要ありません。

例えば、personspersons_client.csvファイルにエクスポートしたい場合、psqlクライアントから以下のように\copyコマンドを実行できます。

\copy (SELECT * FROM persons) to 'C:\tmp\persons_client.csv' with csv
Code language: SQL (Structured Query Language) (sql)

このチュートリアルでは、COPY\copyコマンドを使用して、テーブルからCSVファイルにデータをエクスポートする方法を紹介しました。

  • このチュートリアルは役に立ちましたか?
  • YesNo

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です