さらに、CSV ファイルは包括的なプログラミング言語と高い互換性があるため、異なるシステム間のデータ交換に理想的な選択肢となります。
このチュートリアルでは、PostgreSQL から CSV 形式にデータをエクスポートするために使用できるさまざまな方法とテクニックを検討します。
要件:
このチュートリアルでは、公式 PostgreSQL ページで提供されている Pagila サンプル データベースを使用します。ただし、このメソッドはどの PostgreSQL データベースでも機能します。
また、PostgreSQL クラスターと対話するために PSQL ユーティリティまたは pgAdmin 4 以降にアクセスできることも前提としています。
PostgreSQL の CSV へのエクスポート: コピー コマンド
データベース テーブルを CSV 形式でエクスポートする最も簡単な方法は、PostgreSQL の「copy」コマンドを使用することです。
まず、好みの方法を使用してターゲット データベースに接続します。このチュートリアルでは、pgAdmin ツールを使用します。
データベースに接続したら、データをエクスポートするテーブルを選択します。 PSQL ツールを使用している場合は、「\dt」コマンドを使用して、現在のデータベース内のすべてのテーブルを表示できます。
\dtエクスポートするテーブルを見つけて、その名前を書き留めます。
「copy」コマンドを使用して、PostgreSQL テーブルから CSV ファイルにデータをエクスポートできます。このコマンドを使用すると、テーブルと CSV を含むさまざまな形式のファイルの間でデータをコピーできます。
テーブルを CSV ファイルにエクスポートするには、次のような構文を使用できます。
COPY table_name TO 'file_path' WITH (FORMAT CSV, HEADER);table_name パラメータと file_path パラメータをターゲット テーブルと CSV ファイルへのパスに置き換えます。
エクスポートされたファイルに列ヘッダーを含める場合は、最後に HEADER オプションを追加します。このオプションを省略すると、PostgreSQL はデフォルトで列名を付けずにデータをエクスポートします。
「copy」コマンドを使用して、Pagila データベースのフィルム テーブルから現在の作業ディレクトリの「fim.csv」という CSV ファイルにデータをエクスポートする次の例を考えてみましょう。
(フォーマット CSV、ヘッダー) を使用してフィルムを「./film.csv」にコピーします。ノート 注:相対パスを使用すると、「copy」コマンドでデータのエクスポートに失敗する場合があります。安全を確保するために、必ず絶対パスを使用してください。
「copy」コマンドを実行すると、コピーされた行の数を示すメッセージが表示されます。
出力例:
1000部コピーノート : PSQL ユーティリティでは、「copy」コマンドの代わりに「\copy」コマンドを使用します。これにより、サーバー側ではなくクライアント側でアクションが実行されます。
PostgreSQL の CSV へのエクスポート: PgAdmin 4
グラフィカル インターフェイスを使用したい場合は、pgAdmin ツールを使用して PostgreSQL データベース テーブルを CSV にエクスポートできます。
これを行うには、次の手順に従うことができます。
PgAdmin を起動し、PostgreSQL データベースに接続します。
オブジェクト エクスプローラーでエクスポートするテーブルに移動します。
テーブルを右クリックし、「インポート/エクスポート」を選択します。
「インポート/エクスポート」ダイアログの「エクスポート」タブを選択し、「ファイル名」フィールドに出力ファイルのパスとファイル名を指定します。
「CSV」形式オプションを選択します。
必要に応じて、「最初の行に列名を含める」ボックスをチェックしてヘッダーを含めます。
「OK」または「エクスポート」ボタンをクリックして、エクスポートプロセスを開始します。
完了すると、右下隅にプロセスの開始とプロセスの完了ステータス メッセージが表示されます。
結論
copy、\copy、および pgAdmin ユーティリティを使用して、特定のデータベース テーブルを PostgreSQL の CSV ファイルにエクスポートする方法を検討しました。