将数据从 MySQL 导出到 CSV 文件

本教程将介绍如何将 MySQL 查询的输出保存到 CSV 文件中。

MySQL 有一种简单的技术可以将选择查询的输出导出到服务器上的文本或 CSV 文件中。使用像 INTO OUTFILE 这样的复杂命令,我们可以快速有效地写入 CSV 文件。

让我们创建一个表并将其结果存储在一个 CSV 文件中。

然而,在我们开始之前,我们创建了一个虚拟数据集来使用。在这里,我们创建了一个表,student_details,以及其中的几行。

-- create the table student_details
CREATETABLEstudent_details(stu_idint,stu_firstNamevarchar(255)DEFAULTNULL,stu_lastNamevarchar(255)DEFAULTNULL,primarykey(stu_id));-- insert rows to the table student_details
INSERTINTOstudent_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*FROMstudent_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
SELECTstu_id,stu_firstName,stu_lastNameFROMstudent_detailsINTOOUTFILE'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 文件夹中。一旦我们执行了上面的代码,就会创建一个文件,其中嵌入了数据。

上述代码的输出生成以下文件:

将数据从 MySQL 导出到 CSV 文件

可以看到上述文件中的数据如下:

将数据从 MySQL 导出到 CSV 文件

我们也可以尝试格式化 CSV 文件中的输出。这可以在 FIELDS TERMINATED BYENCLOSED BY '""'LINES TERMINATED BY 命令的帮助下完成。我们可以如下使用这些命令:

-- Exporting data into students.csv file
SELECT*FROMstudent_detailsINTOOUTFILE'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/abc.csv'FIELDSTERMINATEDBY','ENCLOSEDBY'"'LINESTERMINATEDBY'\n';

上述代码的输出结果为 CSV 文件,如下所示:

将数据从 MySQL 导出到 CSV 文件

正如我们所看到的,上图中的输出使用制表符分隔的文件格式正确。

因此,借助上述方法,我们可以有效地将数据导出到 CSV 文件中。为了找到这个 CSV 文件,我们可以按照上面提到的代码块中 INTO OUTFILE 命令中给出的路径。