说明:以下示例中使用的MySQL版本为MySQL8.0.13,Python版本为Python3.6.4,数据库第三方客户端Navicat Premium版本为 12.0.18

方法一:利用select ······ into outfile语句

首先登陆MySQL,然后查看系统变量secure_file_priv的值,如下所示:

默认情况下,secure_file_priv的值为NULL,此时如果利用select ······ into outfile语句将查询结果导出,会因为权限问题而报错,要想解决这个问题可以在MySQL的配置文件my.ini中添加语句secure_file_priv = 'some directory',some directory指的是SQL语句查询结果要保存的位置。此处,笔者已在配置文件my.ini中添加了语句secure_file_priv = E:\MySQL Exported Results。

以.xls文件形式导出查询结果,SQL语句如下:

导出结果如下图所示:

利用这种方式导出的查询结果不包括列名,可以根据数据库中的原始数据手工给各列添上对应的列名。

以csv文件形式导出查询结果,SQL语句如下:

导出结果如下图所示:

从上图可以看到导出结果全部都放入了同一列中,想要对导出的数据做进一步还要进行手工分列,比较麻烦。如有哪位朋友知晓用这种方式如何将查询结果以csv文件形式导出且分列正确,还请不吝赐教。

方法二:利用重定向命令

将查询结果以txt文件形式导出,SQL语句如下(默认已为mysql添加了环境变量):

最终导出结果如下:

从上图可以看到,这种导出方式得到的导出结果分列正确,且带有列名。

方法三:利用第三方客户端工具Navicat Premium

以将查询结果导出为csv文件为例,具体步骤如下:

1)打开navicat premium(默认已经建立好MySQL数据库连接),选中相应的数据库,然后建立新的查询。

2)先点击右上角的运行按钮,然后点击导出结果图标,出现如下图所示对话窗口,在导出格式选项中选择CSV文件。

3)点击右下角的下一步后,跳出如下窗口。

4)设置导出文件的保存位置及文件名称。

5)点击上图中右下角的高级选项,设置csv文件的字符集编码方式为GB2312(默认是UTF-8)。

6)设置好字符集编码方式后,先点击确定按钮,再点击右下角的下一步,跳出如下窗口。

7)在上图中,勾选包含列的标题,并将日期排序更改为我们熟悉的YMD(即年月日)格式,其他保持默认值即可。然后点击右下角的下一步,跳出如下窗口。

8)在上述窗口中点击右下角的开始,即开始导出查询结果。

如上图所示,则表明查询结果已成功导出。

最终的导出结果如下图所示:

从上图可以看到,这种方式导出的查询结果可以包含查询结果各列对应的列名,且有着正确的分列。上述步骤说的是将查询结果导出为csv文件,若想将查询结果导出为.xls或者.xlsx文件,步骤与上述类似,且不用更改导出文件的字符集编码方式,使用默认的UTF-8即可。

方法四:利用Python与MySQL的交互

import pandas as pd
import pymysql# 定义一个用于与MySQL数据库交互的上下文管理器:
class DataBase(object):def __init__(self,name,password):# 创建数据库连接self.conn = pymysql.connect('localhost','root',str(password),str(name),charset='utf8mb4')# 创建cursor对象self.cursor = self.conn.cursor()def __enter__(self):return self.cursor  # 返回cursor对象,且这个cursor对象会被赋给with语句中as后面的变量def __exit__(self,exc_type,exc_value,traceback):self.cursor.close()    # 关闭游标对象self.conn.close()      # 断开数据库连接def main():with DataBase('sql50',883721) as db:db.execute("select * from student where sgender='男'")   # 执行sql语句content = db.fetchall()  # 获取数据(db中保存着查询结果集)df = pd.DataFrame(list(content))  # 将从数据库中查询出的数据放入DataFrame对象中return dfif __name__ == '__main__':df = main()new_cols = ['sid','sname','sbirth','sgender']
df.columns = new_cols
df.head()

查询结果df的数据结构如下图所示:

# 将查询结果df写入csv文件:df.to_csv('E:/student.csv',sep=',',index=False,encoding='gbk')

导出的csv文件student中的数据如下所示:

利用这种方式将SQL语句的查询结果导出时,也需要根据数据库中的原始数据给导出数据中的各列添加对应的列名。

类似的,如果想以.xlsx文件的形式导出SQL语句的查询结果,可以调用DataFrame的to_excel方法,此处不再赘述。

参考:

https://dev.mysql.com/doc/refman/8.0/en/select-into.html

https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_secure_file_priv

https://blog.csdn.net/qq_41080850/article/details/85100641

http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_csv.html?highlight=dataframe%20to_csv#pandas.DataFrame.to_csv

https://blog.csdn.net/pengchengliu/article/details/82884046

MySQL查询结果导出方式总结相关推荐

  1. MySQL查询结果导出到文件

    转载链接:http://eric-gcm.iteye.com/blog/1127734 选择某些行作为需要的数据 SELECT id,dbname FROM `index` into outfile ...

  2. mysql查询结果导出excel_Mysql查询结果导出为Excel的几种方法

    本文地址:http://www.cnblogs.com/qiaoyihang/p/6398673.html 具体原文找不到了,此篇是借鉴门户的一篇文章 方法一: 查询语句直接输出 语法格式: Exam ...

  3. 将mysql查询语句导出insert_sql server 数据库导出表里所有数据成insert 语句

    有时候,我们想把数据库的某张表里的所有数据导入到另外一个数据库或另外一台计算机上的数据库,对于sql server有这样的一种方法 下面我以sql server 2008 R2,数据库是Northwi ...

  4. webService+mysql+mybatis+layui 分表动态查询、导出

    目录 1.介绍 2.获取WebService接口数据 3.mysql 数据库使用分表MYISAM引擎 4.layui 数据表格,分离的表头.表数据.分页导航插件 5. 点击按钮,多表联合条件查询 6. ...

  5. pythonmysql查询转list_使用Python将Mysql的查询数据导出到文件的方法

    mysql官方提供了很多种connector,其中包括python的connector. 下载地址在:http://dev.mysql.com/downloads/connector/python/ ...

  6. MySQL查询字段区不区分大小写? innodb的事务与日志的实现方式?binlog的几种日志录入格式以及区别?

    MySQL查询字段区不区分大小写? MySQL innodb的事务与日志的实现方式 MySQL binlog的几种日志录入格式以及区别 MySQL查询字段区不区分大小写? 答案是不区分 如何解决需要区 ...

  7. kettle 查询数据库写入文件_怎么连接数据库-详解如何用kettle连接mysql数据库并导出sql查询结果...

    概述 今天主要介绍下kettle怎么去连接mysql数据库及导出sql查询结果. 1.数据库链接驱动 如果没有安装对应的数据库驱动,在数据库连接的过程中,可能会报某个数据库连接找不到的异常,因此需要下 ...

  8. mysql按select导出_mysql 导出select结果到文本的几种方式

    mysql -hxx -uxx -pxx -e "query statement" db > file 例如: mysql -h127.0.0.1 -uroot -p0000 ...

  9. mysql workbench 导出查询结果_MySQL Workbench查询结果导出步骤

    MySQL Workbench查询结果导出步骤 发布时间:2020-05-19 16:16:31 来源:PHP中文网 阅读:202 作者:三月 本文主要给大家介绍MySQL Workbench查询结果 ...

最新文章

  1. dynamic.rnn()sequence_len理解
  2. 上海day2--两年前最烧脑的环境变量
  3. 部署篇01:Linux 安装配置JDK
  4. C++二叉搜索树(Binary Search Tree)(附完整源码)
  5. 01背包、完全背包、多重背包
  6. Linus Torvalds:我们都老了,但Linux维护者真的很难找
  7. LCT模板(无讲解)
  8. 优秀logo设计解析_优秀Logo设计!字母造型解析
  9. 服务器gsql密码修改,gsql远程登录
  10. 【java线程系列】java线程系列之java线程池详解
  11. bat中冒号的作用(注释 ,跳转, 截取、替换字符串)
  12. spring security oauth2
  13. java软件工程师 英文简历_java软件工程师英文简历模板3篇
  14. 如何准备银行秋招春招?
  15. 谷歌浏览器关闭系统代理后断网问题
  16. left out join举例
  17. 五年从程序员到架构师的职业规划
  18. 【2019-08-14】慢慢来,才叫快
  19. 国内SRC网站,拿走不送
  20. Android App工程结构

热门文章

  1. web移动端-视口是什么
  2. 二分法解具有单调性的方程
  3. 公司电脑重装经验 ThinkPad E480 win7重装 电脑重装
  4. Unity与讯飞的aiui交互
  5. 金色传说:SAP-FICO-参考加权因素维护执行成本中心分配 KSV5/KSV3报错GA603:系统错误:集01018000D06表CCSS读出错
  6. Linux安装zabbix4
  7. Web前端—01HTML超文本标记语言
  8. CSS 利用@media screen判断识别手机/PC端浏览器
  9. CJT长江连接器公司的A2541系列线对板连接器PCB封装库
  10. 青山绿水 峡谷奇观---野三坡之行(转)