SQLコマンドを用いて、CSV(およびSSV)を入出力することができます。
CSVファイルからデータをインポート
mysql> load data local infile "path/to/import.csv" into table table_name fields terminated by ',';
データをCSVファイルへエクスポート
mysql> select * from table_name into outfile "path/to/export.csv" fields terminated by ',';
ファイルへのパスはデフォルトではmysqlをインストールしたディレクトリからの相対パスになっています。絶対パスを入力することもできます。
terminated byのクオテーション部分をスペースに変えることで、SSVを入出力することができます。
また、ダブルクォーテーションで囲まれたcsvの場合 各SQL文の末尾に 「ENCLOSED BY ‘”‘」を付け加えると上手くインポートしてくれます。
以下、CSVに対してですが、具体例をあげます。
具体例
$vi /home/kndb/import.csv 1,nysql,1 2,mysql,1 3,duck,2 mysql > show fields from foo; +--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | c_name | varchar(64) | YES | | NULL | | | c_num | varchar(64) | YES | | NULL | | +--------+-------------+------+-----+---------+-------+ 3 rows in set (0.06 sec) mysql>load data local infile "/home/kndb/import.csv" into table table_name fields terminated by ','; Query OK, 3 rows affected (0.01 sec) mysql > select * from foo; +------+--------+-------+ | id | c_name | c_num | +------+--------+-------+ | 1 | nysql | 1 | | 2 | mysql | 1 | | 3 | duck | 2 | +------+--------+-------+ 3 rows in set(0.00 sec) mysql> select * from foo into outfile "/home/kndb/export.csv" fields terminated by ','; Query OK, 3 rows affected (0.00 sec) mysql>quit $vi /home/kndb/export.csv 1,nysql,1 2,mysql,1 3,duck,2