はじめに
PostgreSQL (または Postgres )は、MySQLに似たオブジェクトリレーショナルデータベース管理システムですが、拡張機能と安定性をサポートしています。優れた機能の1つは、Postgresテーブルを .CSVにエクスポートできることです。 ファイル。これは、テーブルを別のシステムに転送したり、別のデータベースアプリケーションにインポートしたりする場合に特に役立ちます。
このチュートリアルでは、\copy
を使用してPostgresテーブルを.CSVファイルにエクスポートする方法を学習します。 およびCOPY
コマンド。
前提条件
- システムにインストールされているPostgreSQL
- PostgreSQLの既存のデータベース
- ターミナルウィンドウ/コマンドライン(Ctrl + Alt + T)
PostgreSQLを始める前に
PostgresはWindows、Mac、Linuxにインストールでき、Dockerコンテナ内にデプロイすることもできます。このガイドでは、UbuntuLinuxを使用した手順について説明します。ただし、すべてのエクスポートコマンド サポートされている他のオペレーティングシステムで使用できます。
Postgresをお持ちでない場合は、開発者のWebサイトからソフトウェアをダウンロードしてインストールできます。次のように入力して、デフォルトのリポジトリからUbuntuにPostgresをインストールします。
sudo apt-get install postgresql
サービスが開始したら、データベースを作成またはインポートする必要があります。
COPYコマンドを使用してテーブルから.CSVにデータをエクスポート
psqlには、2つの異なるコマンドがあります。
COPY
の基本的な使用法 コマンドは次のとおりです:
COPY db_name TO [/path/to/destination/db_name.csv] DELIMITER ‘,’ CSV HEADER;
db_name
を置き換えます データベースの実際の名前と/path/to/destination
.CSVファイルを保存する実際の場所を指定します。
たとえば、Windowsでは、コピーを C:\ tmp \ db_name.csvに保存することができます。 。 Linuxでは、デフォルトのパスは /tmp/db_name.csvになります。 。次に、.CSVファイルを開いて、わずかに異なる形式でリストされたテーブルの内容を確認できます。以下の例で違いを確認できます。
まず、指定したテーブルの内容をpsqlシェルに一覧表示します。 コマンドを使用して:
SELECT * FROM [table_name]
次の画像のように、出力にはサンプルテーブル内の値が表示されます。
これで、対応する.CSVファイルと比較できます。次の画像に示すように、前述のテーブルからエクスポートされたデータは.CSVファイルに表示されます。
特定の列をテーブルから.CSVにエクスポート
COPY
を使用できます 特定の列をターゲットにするコマンド:
COPY [db_name](column1,column2,column3) TO [/path/to/destination/db_name_partial.csv] DELIMITER ‘,’ CSV HEADER;
\copyコマンドを使用してテーブルから.CSVにデータをエクスポート
\copy
を使用します リモートで作業する場合のコマンド。これにより、サーバーからローカルクライアントマシンの.CSVファイルにデータをエクスポートできます。次のように使用します:
\copy (SELECT * FROM [db_name]) to [/path/to/destination] CSV HEADER
db_name
を置き換えます ソースデータベースの名前で。 /path/to/destination
を置き換えます .CSVファイルの実際の場所を指定します。 Windowsでは、 C:tmpdb_name.csvにエクスポートできます。 。 Linuxでは、 /tmp/db_name.csvにエクスポートできます。 。
\copy
コマンドには、クライアントシステムの昇格された特権のみが必要です。これは、 COPY
を実行するための十分な権限がない場合に役立ちます サーバー上のコマンド。また、 \copy
コマンドを使用すると、相対パスを使用できます。
たとえば、 desktop / db_name.csvを指定できます。 Windowsシステムでは、現在のユーザーのデスクトップに保存されます。