MySQLでCSVファイルをインポートする方法

MySQLでデータベースにCSVファイルのデータをインポートする方法を紹介します。CSVファイルをインポートするには「LOAD DATA INFILE」 構文を使用します。

使用した環境

  • MySQL Server version 5.1.73
  • MySQL Client version 5.1.73

事前準備:テーブルの作成

CSVインポートするには、インポート先のテーブルを用意しておく必要があります。

インポートするCSVが下記の形式の場合、

#社員ID, 氏名, 年齢, 部署
0001, 田中太郎, 33, 営業部
0002, 山田一郎, 45, 営業部
0003, 佐藤圭介, 24, 技術部
0004, 中村花子, 29, 経理部

テーブル作成コマンドは下記のようになります。

CREATE TABLE members (
  id VARCHAR(4) NOT NULL PRIMARY KEY,
  name VARCHAR(10),
  age TINYINT UNSIGNED,
  department VARCHAR(8)
);

CSVインポート 構文

LOAD DATA LOCAL INFILE 'ファイルパス' INTO TABLE テーブル名 FIELDS TERMINATED BY ',';

先頭1行を無視する場合

「IGNORE 1 LINES」を付け加えることで、最初の1行を無視してインポートすることができます。

LOAD DATA LOCAL INFILE 'ファイルパス' INTO TABLE テーブル名 FIELDS TERMINATED BY ',' IGNORE 1 LINES;

データに囲み文字を設定する場合

CSVファイルのデータが下記のように「”」などの囲み文字で囲まれている時、「OPTIONALLY ENCLOSED BY」を付与することで囲み文字の中身のみ取得することができます。

"0001", "田中太郎", 33, "営業部"
"0002", "山田一郎", 45, "営業部"
"0003", "佐藤圭介", 24, "技術部"
"0004", "中村花子", 29, "経理部"
LOAD DATA LOCAL INFILE 'ファイルパス' INTO TABLE テーブル名 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';

CSVインポート 例

load data local infile '/tmp/file_name.csv' into table members fields terminated by ',';

参考:
https://dev.mysql.com/doc/refman/5.6/ja/load-data.html

コメント

タイトルとURLをコピーしました