在 MySQL 中載入資料 INFILE
Preet Sanghavi
2022年5月13日
在本教程中,我們旨在探索如何使用 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_id
、stu_firstName
和 stu_lastName
之類的資訊,但具有不同的 stu_id
。我們的 CSV 檔案的快照如下。
讓我們首先建立一個名為 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