將資料從 MySQL 匯出到 CSV 檔案

Preet Sanghavi 2023年1月3日 2022年5月14日
將資料從 MySQL 匯出到 CSV 檔案

本教程將介紹如何將 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 檔案建立

可以看到上述檔案中的資料如下:

檢視 CSV 檔案

我們也可以嘗試格式化 CSV 檔案中的輸出。這可以在 FIELDS TERMINATED BYENCLOSED 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 檔案中。為了找到這個 CSV 檔案,我們可以按照上面提到的程式碼塊中 INTO OUTFILE 命令中給出的路徑。

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

相關文章 - MySQL CSV