MySQL でデータ INFILE をロードする

Preet Sanghavi 2022年3月28日
MySQL でデータ INFILE をロードする

このチュートリアルでは、MySQL データベースのデータ INFILE を使用して CSV からデータをインポートする方法を探ることを目的としています。

テキストファイルまたは CSV から非常に高速にデータを読み取るには、MySQL の LOAD DATA INFILE ステートメントを使用します。さらに、ファイルをホストが考慮する必要がある場合は、LOCAL ワードが導入されます。

ファイルから情報を読み取る前に、CSV またはテキストファイルがデータベースに存在し、読み取るためのアクセス許可を持っていることを確認する必要があります。

LOAD DATA INFILE ステートメントの基本的な構文は次のとおりです。

LOAD DATA LOCAL INFILE "./csv_file.csv" INTO TABLE database_name.name_of_table; 

ここで、fileCSV.csv という名前の CSV ファイルから students データベースに読み込みます。students データベースのテーブルに student_details という名前を付けます。

ただし、開始する前に作業するダミーデータセットを作成します。いくつかの行とともに、テーブル student_details を作成します。

-- create the table student_details
CREATE TABLE student_details(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName) 
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

CSV ファイルのデータには、stu_idstu_firstNamestu_lastName などの情報が含まれていますが、stu_id は異なります。CSV ファイルのスナップショットは次のとおりです。

データをファイルにロードする mysql

まず、students という名前のデータベースを作成することから始めましょう。これは、次のクエリで実行できます。

CREATE DATABASE students;

次のクエリを記述して、CSV ファイルを students データベースにインポートできます。

LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/fileCSV.csv' into table student_details fields terminated by ',' ENCLOSED BY '"' IGNORE 1 ROWS;

これにより、次の出力が得られます。

Query OK, 6 rows affected (0.01 sec)
Records: 6  Deleted: 0  Skipped: 0  Warnings: 0

students データベースの student_details テーブルを確認すると、次の出力が得られます。

1	Preet	Sanghavi
2	Rich	John
3	Veron	Brow
4	Geo	Jos
5	Hash	Shah
6	Sachin	Parker
7	David	Miller
9	Rich	John
10	Veron	Brow
11	Geo	    Jos
12	Hash	Shah
13	Sachin	Parker
14	David	 Miller

上記のコードブロックから、student_details テーブルが更新されたことが推測できます。これで、CSV ファイルのデータがテーブルに追加されました。

したがって、LOAD DATA INFILE メソッドを使用すると、外部の CSV またはテキストファイルから MySQL のテーブルにデータを効率的に書き込むことができます。

著者: Preet Sanghavi
Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub