TOP > SQL  > MySQL>

MySQL CSVファイル入出力

MYSQLでの「CSVファイル」の入出力方法について記載しています。

入力 LOAD DATA INFILE

「,」などで区切られたCSVファイルを用意することにより、MySQLに高速にデータを入力することができます。
文字の囲み文字が「"」のときの使用例です。
囲み文字が必要ないときはENCLOSED BY '"'を外します。

■構文
LOAD DATA INFILE "ファイル名" INTO TABLE テーブル名
FIELDS TERMINATED BY ',区切り文字' ENCLOSED BY '"';

■コマンド例
LOAD DATA INFILE "c:/data.csv" INTO TABLE data FIELDS TERMINATED BY ',' ENCLOSED BY '"';

■実際にCSVファイルを入力した例です。

ファイルの中身
"sasuke","aaa▲aaaa","1234-1234-678",4500
"ziro","bbb▲aaaa","9999-1234-678",4500
"taro","ccc▲aaaa","8888-1234-678",4500

実際に打ったコマンド
mysql> LOAD DATA INFILE "c:/data2" INTO TABLE ado FIELDS TERMINATED BY ',' ENCLO
SED BY '"';
Query OK, 3 rows affected (0.03 sec)
Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

mysql> SELECT * FROM ado;
+--------+-----------+---------------+-------+
| name   | e_mail    | tell          | maney |
+--------+-----------+---------------+-------+
| sasuke | aaa▲aaaa | 1234-1234-678 |  4500 |
| ziro   | bbb▲aaaa | 9999-1234-678 |  4500 |
| taro   | ccc▲aaaa | 8888-1234-678 |  4500 |
+--------+-----------+---------------+-------+
3 rows in set (0.00 sec)

出力 INTO OUTFILE

「SELECT」を実施する際に、「INTO OUTFILE」コマンドを追記することで、CSVファイルにデータを出力することが出来ます。
OPTIONALLY ENCLOSED BYは省略できましが、その場合文字列の「""」での囲みがなくなります。

構文
SELECT * FROM テーブル名 INTO OUTFILE "ファイル名" FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '囲み文字の指定';

■使用例
SELECT * FROM data INTO OUTFILE "c:/data" FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"';

実際にado表をファイルに出力した例です。
mysql> SELECT * FROM ado;
+--------+-----------+---------------+-------+
| name   | e_mail    | tell          | maney |
+--------+-----------+---------------+-------+
| sasuke | aaa▲aaaa | 1234-1234-678 |  4500 |
| ziro   | bbb▲aaaa | 9999-1234-678 |  4500 |
| taro   | ccc▲aaaa | 8888-1234-678 |  4500 |
+--------+-----------+---------------+-------+
3 rows in set (0.00 sec)

mysql> SELECT * FROM ado INTO OUTFILE "c:/data2" FIELDS TERMINATED BY ','
    -> OPTIONALLY ENCLOSED BY '"';
Query OK, 3 rows affected (0.00 sec)

data2のファイルの中身です。
"sasuke","aaa▲aaaa","1234-1234-678",4500
"ziro","bbb▲aaaa","9999-1234-678",4500
"taro","ccc▲aaaa","8888-1234-678",4500
関連ページ
・CSV ファイル入出力
MySQLのバックアップを取ろう
SQLファイル(スクリプト)の実行
最近の記事
当サイトについて  免責事項  プライバシーポリシー
Copyright (C) Sasuke 2012 All rights reserved.