在 MySQL 中載入資料 INFILE

Preet Sanghavi 2022年5月13日
在 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 檔案的快照如下。

載入資料 infile 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 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