MySQL导入导出CSV文件
在实际工作中,我们经常需要将MySQL数据库中的数据导出为CSV文件,或者将CSV文件中的数据导入到MySQL数据库中。本文将详细介绍如何在MySQL中导出和导入CSV文件。
导出MySQL数据为CSV文件
使用SELECT … INTO OUTFILE语句
在MySQL中,可以使用SELECT … INTO OUTFILE语句将查询结果导出为CSV文件。语法如下:
SELECT * INTO OUTFILE '文件路径'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM 表名;
FIELDS TERMINATED BY ','
:指定字段之间的分隔符为逗号。ENCLOSED BY '"'
:指定字段值被引号包裹。LINES TERMINATED BY '\n'
:指定行结束符为换行符。
例如,将表students
的数据导出为CSV文件students.csv
:
SELECT * INTO OUTFILE '/var/lib/mysql-files/students.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM students;
使用mysqldump工具
除了使用SELECT … INTO OUTFILE语句,还可以使用mysqldump工具导出整个数据库或表为CSV文件。语法如下:
mysqldump -u 用户名 -p 数据库名 表名 > 文件路径
例如,导出数据库mydb
中的表students
为CSV文件students.csv
:
mysqldump -u root -p mydb students > students.csv
导入CSV文件到MySQL
使用LOAD DATA INFILE语句
在MySQL中,可以使用LOAD DATA INFILE语句将CSV文件导入到表中。语法如下:
LOAD DATA INFILE '文件路径'
INTO TABLE 表名
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
FIELDS TERMINATED BY ','
:指定字段之间的分隔符为逗号。ENCLOSED BY '"'
:指定字段值被引号包裹。LINES TERMINATED BY '\n'
:指定行结束符为换行符。IGNORE 1 ROWS
:忽略CSV文件的第一行,通常为表头。
例如,将CSV文件students.csv
导入到表students
中:
LOAD DATA INFILE '/var/lib/mysql-files/students.csv'
INTO TABLE students
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
使用Navicat工具
除了使用LOAD DATA INFILE语句,也可以使用Navicat等可视化工具来快速导入CSV文件到MySQL数据库。
总结
通过本文的介绍,我们学习了如何在MySQL中导出和导入CSV文件。导出数据为CSV文件有两种方法:使用SELECT … INTO OUTFILE语句和mysqldump工具;导入CSV文件到MySQL也可以使用LOAD DATA INFILE语句或可视化工具。