mysql导出.csv文件

2 篇文章 0 订阅

首先要进入mysql命令行,输入 SHOW VARIABLES LIKE '%secure%';获取secure_file_priv的值,该值是csv文件的存放路径。

具体操作过程如下图所示

然后将数据库中的表按如下指令导出.csv文件

select * from t_user
into outfile 'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/user.csv'
fields terminated by ','
optionally enclosed by '"'
escaped by '"'
lines terminated by '\r\n';

这里的user.csv文件有20多万条记录,字段有如下图所示

导出非常快!

secure_file_priv 的值可以在 my.ini文件中找到和修改。

在MySQL5.6中my.ini位于安装路径下,而MySQL5.7中my.ini位于ProgramData文件夹下的MySQL中.

参数说明:

FIELDS TERMINATED BY ',':指定字段分隔符为,(逗号),默认是空格
OPTIONALLY ENCLOSED BY '"':认为双引号中的是一个独立的字段。Excel 转 CSV 时,有特殊字符(逗号、顿号等)的字段,会自动用双引号引起来,注意这里看到是两个双引号,实际上是一对 '(单引号)里面一个"(双引号),默认是不使用符号进行区别
LINES TERMINATED BY '\n':指定行分隔符为\n(换行),注意,在 Windows 平台上创建的文件,分隔符是 '\r\n'。默认是一条记录+一个换行符,即每条记录占一行。这里设置与否都一样。

上面的语句归纳为:

select 字段1[,字段2...,字段n] from table_name condition
into outfile 'secure_file_priv所指向的路径+filename.csv'
fields terminated by ','--可以不设置
optionally enclosed by '"' --可以不设置
escaped by '"' --可以不设置
lines terminated by '\r\n'; --可以不设置

比如有t_book表如下所示

执行查询语句

SELECT * FROM t_book
WHERE publishDate BETWEEN '2012-01-01' AND '2018-10-01'
AND price BETWEEN 1000 AND 10000
AND bookName LIKE CONCAT('%','名','%')
AND kind='言情'
LIMIT 0,198
into outfile 'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/t_book.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'

结果如图所示

以上内容涉及数据库表t_book,可以下载我的t_book资源进行实验

关于乱码的解决

乱码时可以通过 character set 编码格式进行设置,比如

SELECT * from t_book
INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 5.6/Uploads/t_book.csv'
CHARACTER SET gbk
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值