MySQL导出数据为csv的方法

将数据库中的数据导出成csv格式的文件

CSV格式,其要点包括:
(1)字段之间以逗号分隔,数据行之间以\r\n分隔;
(2)字符串以半角双引号包围,字符串本身的双引号用两个双引号表示。

准备一个测试表,随便加了点数据
库名test,表名test

1.使用select … into outfile的方法

使用命令行导出

fields terminated by描述字段的分隔符,默认情况下是tab字符(\t)
optionally enclosed by描述的是字段的括起字符。
escaped by描述的转义字符。默认的是反斜杠(backslash:\ )
lines terminated by : 行与行之间的分隔

mysql> select * from test into outfile '/tmp/test.csv' fields terminated by ","  escaped by '' optionally enclosed  by ''   lines terminated by '\n' ;
Query OK, 5 rows affected (0.00 sec)

查看数据,空数据会用NULL代替

[root@localhost tmp]# cat test.csv
1,a,1,1,1
2,b,2,2,2
3,c,NULL,NULL,NULL
4,d,4,4,4
5,e,5,5,NULL

这里不能看到每个字段的名字
如果要看到字段名字

mysql> select * into outfile '/tmp/test1.csv' fields terminated by ',' escaped by '' optionally enclosed  by '' lisnes terminated by '\n' from (select 'col1','col2','col3','col4','col5' union select id,user,url,name,age  from test) b;
Query OK, 6 rows affected (0.00 sec)

这时看到的数据就有字段名字了,这个可以自己改,为了区分开两者不同,我csv文件中的标题换了个名字,数据如下

[root@localhost tmp]# cat test1.csv
col1,col2,col3,col4,col5
1,a,1,1,1
2,b,2,2,2
3,c,NULL,NULL,NULL
4,d,4,4,4
5,e,5,5,NULL

注意:
into outfile这种方法导出的文件,导出路劲数据库必须要有权限并且导出的文件之前要不存在(如果没权限报ERROR 1 (HY000): Can’t create/write to file ‘/root/test1.csv’ (Errcode: 13 - Permission denied)),防止数据被覆盖(如果有文件报ERROR 1086 (HY000): File ‘/tmp/test.csv’ already exists)

2.使用MySQL命令结合sed的方法

利用mysql的-e参数,可以导出数据,并且可以通过正则对数据进行处理,比如说把上面的NULL换成空字符

[root@localhost tmp]# mysql -uroot  -p密码  test -e "select * from test where id > 1" -s |sed -e  "s/\t/,/g" -e "s/NULL/  /g" -e "s/\n/\r\n/g"  > /tmp/test2.csv
mysql: [Warning] Using a password on the command line interface can be insecure.#使用-e参数执行命令,-s是去掉输出结果的各种划线
#利用sed将字段之间的tab换成,并且将NULL替换成空字符

查看导出数据

[root@localhost tmp]# cat test2.csv
id,user,url,name,age
2,b,2,2,2
3,c,  ,  ,
4,d,4,4,4
5,e,5,5,

如果不想要标题行,可以使用-N参数

3.使用mysqldump导出

使用前注意:在使用mysqldump时,需要先查看mysql参数,有个secure_file_priv 参数,这个参数是用来限制mysql导入导出,默认是关闭的,不允许导出,所以要先将这个参数打开
在my.cnf中添加

secure_file_priv = "/tmp"

意思是只允许导入导出发生在/tmp文件夹,""空的话说明不限制,设置完成后记得重启数据库。
然后在进行mysqldump导出

[root@localhost tmp]# mysqldump -uroot  -p密码  -t -T/tmp/ test  test --fields-terminated-by=',' --fields-escaped-by='' --fields-optionally-enclosed-by=''
mysqldump: [Warning] Using a password on the command line interface can be insecure.

test(第一个test) :导出的数据库;
test(第二个test):导出的数据表;
-t :不导出create 语句,只要数据;
-T 指定到处的位置,注意目录权限,注意这里只到目录,默认名字是table_name.txt;
–fields-terminated-by=’,’:字段分割符;
–fields-enclosed-by=’’ :字段引号;
查看导出数据

[root@localhost tmp]# cat test.txt
1,a,1,1,1
2,b,2,2,2
3,c,NULL,NULL,NULL
4,d,4,4,4
5,e,5,5,NULL

第三种方法导出的文件名字后缀为txt,不过格式和前面的是一样的,换成csv后缀放到Excel打开和前面效果是一样的,感觉和第一种方法类似

MySQL导出数据为csv的方法相关推荐

  1. MySQL导出数据为csv的方法(亲测),导出数据为各种文件类型

    最方便的还是用工具导出 mysql命令行导出,windows和linux都行,下面以windows为例: 登录mysql 1.查看导出权限 5.0mysql默认是不给导出数据到文件的,8.0有默认导出 ...

  2. mysql导出数据到csv的方式

    注: MYSQL导入数据出现The MySQL server is running with the --secure-file-priv option so it cannot execute th ...

  3. mysql shell 回车换行_【shell mysql 导出数据到csv脚本,完美解决乱码转义符等问题】-费元星...

    #!/bin/bash #@author:feiyuanxing [既然笨到家,就要努力到家] #@date:2017-12-05 #@E-Mail:feiyuanxing@gmail.com #@T ...

  4. oracle导出数据到 csv文件方法整理

    第一种方法,也是我使用的: 我通过这个方法,按照字段筛选数据,并分别导出多个csv文件: (1)首先创建存储一个过程,如下,直接复制粘贴即可 .这个存储过程可以直接使用,因为它是通用的,只需要你传入S ...

  5. python mysql导出到excel_python:mysql导出数据到excel工具方法

    近期肺炎严重,春节期间都在家闭关,闲暇时间捡起了之前学习的python,刚好最近在项目上处理大批量数据,从数据库导出数据效率比较低,就想通过python实现导出,结果效率果然很高,基本5-10秒内就导 ...

  6. mysql导出数据的几种方法

    一 备份数据 mysqldump -h$host -P$port -u$user --add-locks=0 --no-create-info --single-transaction  --set- ...

  7. mysql 导出数据为csv格式

    LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt'[REPLACE | IGNORE]INTO TABLE tbl ...

  8. mysql数据导入导出 CSV格式_导出mysql的数据为csv格式的文件

    Mysql自带数据导出的命令 into outfile(本地导出) SELECT * FROM server_warning_repaired into outfile '/tmp/test.csv' ...

  9. MySQL导出数据遇到secure-file-priv问题的解决方法

    这篇文章主要为大家详细介绍了MySQL导出数据遇到secure-file-priv问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 ERROR 1290 (HY000): The My ...

最新文章

  1. MySQL5.7.10多元复制功能搭建
  2. linux c 之sigsuspend 进程阻塞
  3. AjaxPro2在Asp.net中的基本用法
  4. 其实,我们需要的并不多
  5. Tomcat——访问错误[Invalid character found in method name. HTTP method names must be tokens]解决方案
  6. fedora linux命令,Fedora Linux的一些常用设置和常用命令
  7. 【Keras】从两个实际任务掌握图像分类
  8. 网易云深度学习第一课第一周编程作业
  9. DOM4J及SAXReader解析xml文件数据
  10. Python 商务统计学 lesson 01
  11. python学习-获取时光网电影TOP100电影信息
  12. Linux软件包管理工具-yum
  13. 俗语“手握金鱼骨,富贵不用愁”,是啥意思?金鱼骨怎么形成的?
  14. 从源码角度上探索AdapterViewFlipper怎么实现广告栏的垂直自动滚动
  15. Java+spring 基于ssm的幼儿园管理系统程序#毕业设计
  16. 【软件测试】—— 水杯测试用例
  17. Python 绘制游戏窗口
  18. 木马核心技术剖析读书笔记之木马免杀
  19. 数据库关系代数操作与扩展操作
  20. JavaScript-截取字符串

热门文章

  1. 海驾学车过程全揭秘——第五篇:网上约车(电话约车)
  2. 使用Chrome-headless模式下,截屏不全屏的问题
  3. 《Modeling Multi-turn Conversation with Deep Utterance Aggregation》阅读笔记
  4. 基于motoharw平台的电机控制策略模型simulink仿真实现
  5. 【Vijos P1052】 贾老二算算术 高斯消元傻题
  6. 2021年全球及中国玻璃基板行业专利情况分析:中国已成为玻璃基板行业第一大技术来源国[图]
  7. 求职季哪种 Python 程序员能拿高薪?
  8. 写给我姐姐的一封信 2020-7-12
  9. 教孩子有教养,有气质,有风度
  10. elementui table 固定列_element-ui 中的table的列隐藏问题解决