How to export table to CSV in MySQL

CSV ファイルは、多くのアプリケーションでサポートされている、非常に共通のテキスト ファイル フォーマットです。 CSV の完全な形式は、Comma-Separated Values (カンマ区切り値) です。 つまり、データはこのファイルの各行でカンマで区切られているのです。 CSVは主に、このファイル形式をサポートするさまざまな種類のアプリケーション間で表形式のデータを交換するために使用されます。 XMLは、一般的にアプリケーション間でデータを交換するために使用される別のファイル形式です。 それはXMLファイルよりも少ないスペースと帯域幅を取るため、しかし、CSVファイルは、XMLファイルよりも良いオプションです。 あなたは、データを別のアプリケーションにインポートする前に、あるアプリケーションからCSV形式でデータをエクスポートする必要があります。 MySQLは、データベーステーブルからデータをエクスポートするための様々な方法をサポートしています。 CSV形式はそのうちの1つです。 この記事では、MySQL データベース テーブルから CSV 形式でデータをエクスポートするさまざまな方法を紹介します。

前提条件:

エクスポート文を実行する前に、新しいデータベースとテーブルを作成するか、既存のデータベースとテーブルを選択する必要があります。

次の SQL コマンドを実行して、3 つのテーブルにいくつかのデータを挿入します。

エクスポートされたファイルはすべて MySQL の特定の場所に保存され、その場所は変数 “secure_file_priv” に保存されます。 次のコマンドを実行し、ファイルのパスを確認します。

SHOW VARIABLES LIKE “secure_file_priv”;

ファイルの場所は ‘/var/lib/mysql-files/’ になっています。

INTO OUTFILEステートメントを使用してCSV形式でデータをエクスポートする:

どのデータベース テーブルもINTO OUTFILEステートメントを使用してエクスポートすることができます。 例えば、booksテーブルのデータをエクスポートしたいとします。

SELECT * FROM books;

エクスポートファイル名として、拡張子が .csv の任意のファイル名を設定することが可能です。 以下のエクスポートコマンドを実行すると、/var/lib/mysql-files/ に books.csv ファイルが作成されます。

SELECT title, author, publisher FROM books INTO OUTFILE ‘/var/lib/mysql-files/books.csv’;

エクスポート先に行き、ファイルが作成されないことを確認します。 ファイルをクリックすると、ファイルの内容が表示されます。 カンマは、テーブルの任意のフィールド値の内容として存在する場合、それは複数の値に値を区切ります。 booksテーブルでは、3レコード目のpublisherフィールドにカンマ(,)が内容として含まれています。

上記の問題を解決するには、SQL文に必要な区切り文字を適切に指定することで、booksテーブルのデータをCSVファイルにエクスポートすることができます。 次のコマンドを実行して、booksテーブルをbooks2.csvファイルに適切にエクスポートしてください。 ここで、データを適切にエクスポートするために、3つのデリミターが使用されています。 FIELDS TERMINATED BY、ENCLOSED BY、LINES TERMINATED BYです。

さて、books2.csvファイルを開くと、前の問題がこのファイルで解決され、データがカンマ(,)で複数値に分かれていないことがわかると思います。

Mysql クライアントを使用してデータを CSV 形式でエクスポートする:

テーブル データは、mysql クライアントを使用して CSV ファイルにエクスポートすることができます。 The borrowers table is exported in this part of this article. Run the following command to check the existing content of this table.

SELECT * FROM borrowers;

mysql statement with `sed` command is used here to export the data. One of the benefits of this statement is that you can set any location and filename for storing the CSV file without the default location that is used in the previous example. If there is no password for the root user then -p option will be omitted. The exported location is /tmp and filename is output.csv here.

mysql -h localhost -u root -p -e ‘select * from library.borrowers’ |
sed ‘s/\t/,/g’ > /tmp/output.csv

If you open the output.

PHPmyadmin を使用してデータを CSV 形式でエクスポートする:

データベース テーブルは、任意のデータベース管理ツールを使用して非常に簡単に CSV ファイルにエクスポートすることができます。 phpmyadmin は、テーブルを CSV ファイルにエクスポートするために使用されます。 ここで、エクスポートされるファイル名は、テーブルの名前になります。

エクスポートしたいデータベースのテーブルを選択し、右側から「エクスポート」タブをクリックします。 フォーマット] ドロップダウン リストから CSV フォーマットを選択し、[Go] ボタンをクリックします。 ファイルを保存するオプションを選択し、OK ボタンを押します。


ファイルはダウンロード フォルダーにダウンロードされます。 ここでは、book_borrow_info テーブルがエクスポートされます。 そのため、CSVファイル名はbook_borrow_info.csvとなり、ファイルを開くと以下の内容が表示されます。

まとめ:

データベースサーバーのエクスポート機能を使用すれば、アプリケーション間でのデータ交換作業は簡単になります。 MySQL は、テーブルデータをエクスポートするために、他の多くのファイル形式をサポートしています。 sql ファイル形式は、主に同じデータベース サーバー間でデータを転送するために使用されます。 CSV 形式は、2 つの異なるアプリケーション間でデータを交換する場合に非常に便利です。

コメントを残す

メールアドレスが公開されることはありません。