背景・動機
業務でどうしてもSQLでの抽出結果をExcelに持っていく必要があり、CSVファイルで結果を出力できたらと思い調べたら、結構簡単にできたので備忘録をかねて投稿します。
概要
- MySQLの実行結果をファイルに保存するには
INTO OUTFILE ~
を使う。 - ファイルの形式をCSVにするには
FIELDS TERMINATED BY ~
を使う。
例
SELECT id, name FROM products INTO OUTFILE '/path/to/file.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';
おまけ
- CSVファイルをインポートするには
LOAD DATA INFILE
を使う。 - その場合も同じく
FIELDS TERMINATED BY ~
を使う。
例
LOAD DATA INFILE '/path/to/file.csv' INTO TABLE products
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES; -- ヘッダ行がある場合に指定
最後に
- Excelや他のツールとデータをやり取りする場合にCSVフォーマットはよく使うと思います。
- コマンドラインで簡単にCSVファイルの入出力ができるので、是非やってみてください。