mysql导出数据到表格讲解大全(导出数据带表头,导出数据中文乱码问题解决) SpringBoot升级/指定jackson版本 JAVA - EnumMap与EnumSet简单总结 js获取主机mac等信息【亲测有效】-- 附执行结果&代码 [记录六] Vue(全家桶)+node+koa2+mysql+nginx+redis,博客全栈项目之node后台连接mysql和redis,登陆接口的编写 C# 读取XML配置文件 MongoDB数据库设置密码 Redis之重设密码及开启远程访问 本地Navicat连接阿里云MySQL数据库注意要点 PHP Windows系统实现定时任务的两种方式bat版 面试官让我手写promise,我这样写,他很满意 超级码力在线编程大赛初赛 第二场 UML类图的依赖和关联详解(含代码) 【C语言】新手实现简单的石头剪刀布人机对战 Codeforces Round #666 (Div. 2)题解ABC Codeforces Round #666 (Div. 2)E Monster Invaders 华为今年不会推出运行鸿蒙OS的手机;Deno 1.3.2发布|极客头条 异或在笔试题中的超神表现 超级码力在线编程大赛初赛 第2场 T1-T4题解 1397D. Stoned Game(博弈) Codeforces Round #666(Div.2)A~D题题解 高性能微服务架构技术选型 阿里饿了么Java4面:(数据结构+框架源码+JVM+分布式) 2020java面试总结 使用ffmpeg提取mp4内部日期重命名文件(需lua) 【剑指Offer】56.2 数组中只出现一次的数字,其他出现3次 JAVA二三事-使用IO+Properties实现动态读取文本信息 排序算法的C语言实现C代码(未更完) RT-Thread 内核学习--信号量的初步使用 【剑指Offer】57.2 和为S的连续正数序列 Qt三方库开发技术:QXlsx介绍、编译和使用 4G DTU模块的作用和功能说明 【Tips】- Wifi模块和4G无线通信 【5G核心网】 Identifiers 身份标识 DPDK支持的硬件:CPU、网卡NIC、加密引擎、基带加速器 如何根据普通ip地址获取当前地理位置 人工智能能力提升指导总结 520了,用32做个简单的小程序 程序员的数学--用贝叶斯定理来推断一个案子 文旅部新规:在线旅游网站不得擅自屏蔽删除评价 不得大数据杀熟 苏宁易购开学季消费大数据:手机以旧换新销量增长299% 做实供电服务“133” 助大数据直上“云”端 思科前程序员离职 5 月后“删虚拟机跑路”,240 万美元打水漂,网友:够狠! 抗疫代码成国博最新藏品 阿里程序员“写代码写进国博挺酷” 国博史上首次收藏代码!它们是阿里程序员写下的抗疫代码 威胜信息发布2020年上半年业绩:物联网产业进入爆发期 营收净利双增长 下月发布会不止有新品折叠屏手机 酷开的物联网家居生态野心初现 史上最全的数据库面试题 数据库面试必看 一个数据库SQL查询的数次轮回 百度智能云正式对外发布百度智能云数据库品牌GaiaDB
您的位置:首页 >运维 >

mysql导出数据到表格讲解大全(导出数据带表头,导出数据中文乱码问题解决)

方法1 使用sqlyang工具

1.本地准备好一个文件

2.选择数据

3.点击图中所示按钮 ,选择复制所有行到剪贴板

4.一般都选择确定,无须修改

5 打开之前的文件,粘贴保存

方法2 使用mysql命令

注意事项放前面

MYSQL导入数据出现The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
这个原因其实很简单,是因为在安装MySQL的时候限制了导入与导出的目录权限
只能在规定的目录下才能导入
我们需要通过下面命令查看 secure-file-priv 当前的值是什么
mysql> show variables like ‘%secure%’;
该图中 secure-file-priv 为空,表明可以任意保存路径

该图中指定啦路径,麻烦啦。

解决方法:
在安装MySQL的目录中找到my.ini的配置文件(记录了MySQL的默认配置,如端口号,默认字符集,默认存储引擎等等),打开这个文件,加入
secure-file-priv =
即可解决问题,(若无法修改文件,可用Notepad++以管理员打开进行修改)
!注意,修改完后需重新启动MySQL服务器才可生效.
2.打开生成的exel文档时中文字符乱码
原因:sqlyog默认中文的字符编码类型为utf8,而windows系统默认的中文编码类型为GB2312,因此出现乱码问题
解决方式:
用convert转换编码
convert(typename using gb2312)

如果是正常安装就不会出现这些问题。
安装教程前面博客也有。

通过mysql客户端shell连接到服务器,选择使用的数据库,输入sql代码:
select 字段from 表格 (筛选条件)
into outfile ‘/路径/路径.csv’
fields terminated by ‘,’ ------字段间以,号分隔
optionally enclosed by ‘"’------字段用"号括起
escaped by ‘"’ ------字段中使用的转义符为"
lines terminated by ‘\r\n’;------行以\r\n结束

例子
myemployees 所在资源

USE myemployees;SELECT * FROMemployees;#查询下有什么SELECT * FROM employees INTO OUTFILE "C:/Users/Shineion/Desktop/tu/shuju.csv" FIELDS TERMINATED BY ","ESCAPED BY """ OPTIONALLY ENCLOSED BY """LINES TERMINATED BY "\r\n";

成功运行

查看保存的文件

保存的文件有些问题,特别是时间,我们修改保存命令

SELECT * FROM employees INTO OUTFILE "C:/Users/Shineion/Desktop/tu/shuju.csv" FIELDS TERMINATED BY "," ;

这次好啦很多,说明保存命令并不需要全部用完

保存的文件无标题字段,因为筛选出来的只有数据,无字段。

添加筛选条件WHERE job_id=‘AD_VP’

SELECT * FROM employees WHERE job_id="AD_VP" INTO OUTFILE "C:/Users/Shineion/Desktop/tu/shuju.csv" FIELDS TERMINATED BY ","ESCAPED BY """OPTIONALLY ENCLOSED BY """ LINES TERMINATED BY "\r\n";

成功运行

输出带有表头
语法

SELECT *INTO OUTFILE "路径" 导出条件1 导出条件2FROM (SELECT "表头别名1","表头别名2" UNION SELECT 字段1,字段2 FROM 表格 筛选条件) b;

解释下:SELECT ‘表头别名1’,‘表头别名2’ UNION SELECT 字段1,字段2 FROM 表格 筛选条件
1.SELECT ‘表头别名1’,‘表头别名2’:手动写表头字段别名
2.UNION:联合
3.SELECT 字段1,字段2 FROM 表格 筛选条件: 筛选数据
即左表头 右 数据,中间union

算例

SELECT *INTO OUTFILE "C:/Users/Shineion/Desktop/tu/shuju2.csv" FIELDS TERMINATED BY "," FROM (SELECT "员工编号","邮箱" UNION SELECT employee_id,email FROM employees) b;

运行成功

查看文件
中文乱码 还是改用英文吧

添加筛选条件

SELECT *INTO OUTFILE "C:/Users/Shineion/Desktop/tu/shuju2.csv" FIELDS TERMINATED BY "," FROM (SELECT "员工编号","邮箱" UNION SELECT employee_id,email FROM employees WHERE job_id="AD_VP") b;

导出数据中文乱码问题解决

方法1 使用sqlyang 复制不存在乱码
原始数据 不存在中文,插入一句中文

INSERT INTO employees (first_name) VALUES("余登武");
SELECT * FROMemployees ;

复制数据到剪贴板 再粘贴到表格中
无乱码

方法2 使用代码: CONVERT((字段) USING gbk)

我们先创建一个中文数据表吧

CREATE TABLE book(id INT,#编号bookname VARCHAR(50),#书名最大20个字符username VARCHAR(50)#作者姓名);DESC book;#查看表结构INSERT INTO book(id,bookname,username)VALUES(1,"高数","余登武"),(2,"英语","高念");SELECT * FROM book;

导出数据乱码是因为
表是采用utf8编码(可以用show create table 表名;语句查看一下),而Excel文件则是GB2312编码。

所以我们采用convert将中文字段转换成gbk编码:

不带表头来一下
语法

SELECT 字段1,CONVERT((字段2) USING gbk) AS "字段1别名 ",CONVERT((字段3) USING gbk) AS ‘字段3别名’ FROM 表名 [筛选条件] INTO OUTFILE‘路径’ …;

别名可以不写

SELECT 字段1,CONVERT((字段2) USING gbk),CONVERT((字段3) USING gbk)FROM 表名 [筛选条件] INTO OUTFILE‘路径’ …;

SELECT id,CONVERT((bookname) USING gbk) AS "书名",CONVERT((username) USING gbk) AS "作者" FROM book INTO OUTFILE "C:/Users/Shineion/Desktop/tu/shuju3.csv" FIELDS TERMINATED BY "," ;

带表头来一下

语法:

SELECT *INTO OUTFILE "路径" FIELDS TERMINATED BY "," #以逗号分隔,还可以再添加其他条件FROM (SELECT CONVERT(("表头字段1别名") USING gbk),CONVERT(("表头字段2别名") USING gbk),CONVERT((" 表头字段3别名") USING gbk) #写表头UNION SELECT 字段1, CONVERT((字段2) USING gbk),CONVERT((字段3) USING gbk) FROM 表名) b;#查询的数据

算例

SELECT *INTO OUTFILE "C:/Users/Shineion/Desktop/tu/shuju3.csv" FIELDS TERMINATED BY "," FROM (SELECT CONVERT(("编号") USING gbk),CONVERT(("书") USING gbk),CONVERT((" 作者") USING gbk)UNION SELECT id, CONVERT((bookname) USING gbk),CONVERT((username) USING gbk) FROM book) b;

结果:

在这里插入图片描述

电气工程的计算机萌新,写博文不容易,如果你觉得本文对你有用,请点个赞支持下,谢谢。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。