ここではMySQLで、CSVファイルのデータをインポートする方法を紹介しています。
CSVファイルのデータをインポートする方法
CSVファイルのデータをインポートするには、LOAD DATA INFILEコマンドを使います。
LOAD DATA INFILEコマンドの基本的な使い方は次の通りです。
LOAD DATA INFILE 'ファイルパス'
INTO TABLE テーブル名 FIELDS TERMINATED BY '区切り文字'
ENCLOSED BY '囲み文字'
LINES TERMINATED BY '改行文字コード';
・FIELDS TERMINATED BY
区切り文字を指定します。
・ENCLOSED BY
囲み文字を指定します。
・LINES TERMINATED BY
改行文字コードを指定します。
CSVファイルをインポートしたサンプル
LOAD DATA INFILEコマンドを使って実際ににテーブルにデータをインポートしてみました。
今回は次のような空のテーブルを用意しました。
mysql> SELECT * FROM tab1;
Empty set (0.00 sec)
mysql> DESC tab1;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| emp_id | varchar(10) | YES | | NULL | |
| emp_name | varchar(100) | YES | | NULL | |
| dept | varchar(10) | YES | | NULL | |
| age2 | int(11) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+
4 rows in set (0.01 sec)
登録するデータは事前に「tab1.csv」として、CSVファイルとして準備しておきました。
・tab1.csvの中身
"00001","Suzuki","HR","28"
"00002","Tanaka","SALES","25"
"00003","Kizaki","SALES","35"
"00004","Tanaka","DEV","45"
"00005","Kizaki","DEV","55"
"00006","Nakata","DEV","35"
LOAD DATA INFILEコマンドを実行すると登録に成功しました。
SELECT文で登録結果を確認することもできました。
mysql> LOAD DATA INFILE '/wk3/tab1.csv' INTO TABLE tab1 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n';
Query OK, 6 rows affected (0.01 sec)
Records: 6 Deleted: 0 Skipped: 0 Warnings: 0
mysql> SELECT * FROM tab1;
+--------+----------+-------+------+
| emp_id | emp_name | dept | age2 |
+--------+----------+-------+------+
| 00001 | Suzuki | HR | 28 |
| 00002 | Tanaka | SALES | 25 |
| 00003 | Kizaki | SALES | 35 |
| 00004 | Tanaka | DEV | 45 |
| 00005 | Kizaki | DEV | 55 |
| 00006 | Nakata | DEV | 35 |
+--------+----------+-------+------+
6 rows in set (0.00 sec)