SQL

MySQL CSVファイル入出力

更新日:

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

入力 LOAD DATA INFILE

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

構文

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

コマンド例

LOAD DATA INFILE "/tmp/data.csv" INTO TABLE data FIELDS TERMINATED
BY ',' ENCLOSED BY '"';

ファイルの中身

"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 "./data2.csv" 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 '囲み文字の指定';

 

実際に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 "/tmp/data2.csv" FIELDS TERMINATED BY ','
    -> OPTIONALLY ENCLOSED BY '"';
Query OK, 3 rows affected (0.00 sec)

data2.csvのファイルの中身です。

"sasuke","aaa▲aaaa","1234-1234-678",4500
"ziro","bbb▲aaaa","9999-1234-678",4500
"taro","ccc▲aaaa","8888-1234-678",4500
  • この記事を書いた人

sasuke

インフラエンジニアからwebエンジニアに転職し両方の強みを生かしていければと思います。

-SQL

Copyright© さすけのプログラミング入門 , 2019 All Rights Reserved.