將資料從 MySQL 匯出到 CSV 檔案
Preet Sanghavi
2023年1月3日
本教程將介紹如何將 MySQL 查詢的輸出儲存到 CSV 檔案中。
MySQL 有一種簡單的技術可以將選擇查詢的輸出匯出到伺服器上的文字或 CSV 檔案中。使用像 INTO OUTFILE
這樣的複雜命令,我們可以快速有效地寫入 CSV 檔案。
讓我們建立一個表並將其結果儲存在一個 CSV 檔案中。
然而,在我們開始之前,我們建立了一個虛擬資料集來使用。在這裡,我們建立了一個表,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");
上面的查詢建立了一個表以及其中包含學生名字和姓氏的行。為了檢視資料中的條目,我們使用以下程式碼:
SELECT * FROM student_details;
上面的程式碼將給出以下輸出。
stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
現在,讓我們嘗試將上述查詢的結果儲存在一個單獨的 CSV 檔案中。
MySQL 匯出到 CSV
將 MySQL 資料匯出為 CSV 的最基本方法之一是使用 OUTFILE
關鍵字。我們可以使用這個關鍵字,如下所示:
-- Exporting data into students.csv file
SELECT stu_id, stu_firstName, stu_lastName
FROM student_details
INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/abc.csv';
上面的程式碼將查詢的輸出寫入 C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/
目錄中名為 abc.csv
的檔案。
注意
輸出檔案可能已經存在,也可能不存在於 MySQL Server 8.0 的程式資料的 Uploads 資料夾中。一旦我們執行了上面的程式碼,就會建立一個檔案,其中嵌入了資料。
上述程式碼的輸出生成以下檔案:
可以看到上述檔案中的資料如下:
我們也可以嘗試格式化 CSV 檔案中的輸出。這可以在 FIELDS TERMINATED BY
、ENCLOSED BY '""'
和 LINES TERMINATED BY
命令的幫助下完成。我們可以如下使用這些命令:
-- Exporting data into students.csv file
SELECT *
FROM student_details
INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/abc.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
上述程式碼的輸出結果為 CSV 檔案,如下所示:
正如我們所看到的,上圖中的輸出使用製表符分隔的檔案格式正確。
因此,藉助上述方法,我們可以有效地將資料匯出到 CSV 檔案中。為了找到這個 CSV 檔案,我們可以按照上面提到的程式碼塊中 INTO OUTFILE
命令中給出的路徑。
作者: Preet Sanghavi