将数据从 MySQL 导出到 CSV 文件
Preet Sanghavi
2024年2月15日
本教程将介绍如何将 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