将数据从 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