mysql2csv 和 csv2mysql 工具
mysql2csv 和 csv2mysql 工具
在这里提供了两个使用 .csv 格式 的简单的 MySQL 数据库的导数据工具。csv 格式可以很容易地生成和解析,而且,也可以很容易地使用办公软件把 .csv 格式转换为 .xls/.xlsx 格式,或者把 .xls/.xlsx 格式转换为 .csv 格式的文件。
- mysql2csv - 将 MySQL 的数据导出为 csv 格式的文件。
- csv2mysql - 将 csv 格式的文件的数据导入到 MySQL 数据库。
编译代码
在编译代码之前,如果你用的是 yum,那么请先确定软件包 mysql-devel 已经安装在你的系统中,才能使用 mysql 的头文件 mysql/mysql.h ,以及和库文件 libmysqlclient.a 或者 libmysqlclient.so。
使用下面的两行命令一编译这两个工具:
g++ mysql2csv.cpp -omysql2csv -g -L/usr/lib64/mysql/ -lmysqlclient
g++ csv2mysql.cpp -ocsv2mysql -g -L/usr/lib64/mysql/ -lmysqlclient
演示
首先,创建一个测试用的数据库,建立初始的数据:
[roxma@VM_6_207_centos mysql2csv]$ mysql -uroot --password="" --default-character-set=utf8
...
mysql> create database csv_test default charset=utf8;
Query OK, 1 row affected (0.02 sec)
mysql> use csv_test;
Database changed
mysql> create table test(id int primary key, value1 varchar(1024))engine=innodb;
Query OK, 0 rows affected (0.08 sec)
mysql> show create table test \G
*************************** 1. row ***************************
Table: test
Create Table: CREATE TABLE `test` (
`id` int(11) NOT NULL,
`value1` varchar(1024) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
mysql> insert into test (id,value1) values(1,"hello"),(2, 'comma , double quotes " '),(3,NULL);
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> select * from test;
+----+--------------------------+
| id | value1 |
+----+--------------------------+
| 1 | hello |
| 2 | comma , double quotes " |
| 3 | NULL |
+----+--------------------------+
3 rows in set (0.00 sec)
导出 MySQL 的数据到 .csv 文件:
[roxma@VM_6_207_centos mysql2csv]$ ./mysql2csv host="127.0.0.1" port="3306" db="csv_test" user="root" passwd="" charset="utf8" execute="select * from test" > data.csv
host=127.0.0.1
port=3306
db=csv_test
user=root
passwd=
charset=utf8
execute=select * from test
[roxma@VM_6_207_centos mysql2csv]$ cat data.csv
id,value1
1,hello
2,"comma , double quotes "" "
3,NULL
导入 .csv 文件的数据到 MySQL:
[roxma@VM_6_207_centos mysql2csv]$ ./csv2mysql host="127.0.0.1" port="3306" db="csv_test" user="root" passwd="" charset="utf8" execute="insert into test set id=?id+3, value1=?value1" input="data.csv"
host=127.0.0.1
port=3306
db=csv_test
user=root
passwd=
charset=utf8
execute=insert into test set id=?id+3, value1=?value1
input=data.csv
3 rows executed.
[roxma@VM_6_207_centos mysql2csv]$ mysql -uroot --password="" --default-character-set=utf8 --database="csv_test" -e"select * from test"
+----+--------------------------+
| id | value1 |
+----+--------------------------+
| 1 | hello |
| 2 | comma , double quotes " |
| 3 | NULL |
| 4 | hello |
| 5 | comma , double quotes " |
| 6 | NULL |
+----+--------------------------+
支持的工具选项
| 选项 | 描述 | 默认值 |
|---|
代码下载
https://github.com/roxma/cpp_learn/tree/master/tools/mysql2csv
mysql2csv 和 csv2mysql 工具的更多相关文章
- Unity3d入门 - 关于unity工具的熟悉
上周由于工作内容较多,花在unity上学习的时间不多,但总归还是学习了一些东西,内容如下: .1 根据相关的教程在mac上安装了unity. .2 学习了unity的主要的工具分布和对应工具的相关的功 ...
- 细说前端自动化打包工具--webpack
背景 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过链接组织在一起.用过Dreamweaver的都知道,做网页就像用word编辑文档 ...
- 应用工具 .NET Portability Analyzer 分析迁移dotnet core
大多数开发人员更喜欢一次性编写好业务逻辑代码,以后再重用这些代码.与构建不同的应用以面向多个平台相比,这种方法更加容易.如果您创建与 .NET Core 兼容的.NET 标准库,那么现在比以往任何时候 ...
- .NetCore中的日志(2)集成第三方日志工具
.NetCore中的日志(2)集成第三方日志工具 0x00 在.NetCore的Logging组件中集成NLog 上一篇讨论了.NetCore中日志框架的结构,这一篇讨论一下.NetCore的Logg ...
- dll文件32位64位检测工具以及Windows文件夹SysWow64的坑
自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问题.相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program Files (x86),Program Files的区别 ...
- Java基础Map接口+Collections工具类
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
- 渗透测试工具BurpSuite做网站的安全测试(基础版)
渗透测试工具BurpSuite做网站的安全测试(基础版) 版权声明:本文为博主原创文章,未经博主允许不得转载. 学习网址: https://t0data.gitbooks.io/burpsuite/c ...
- CorelDRAW X8 如何破解激活(附国际版安装包+激活工具) 2016-12-15
之前有位搞平面的好友“小瘦”说CDR X8无法破解,只能用X7.呃……呃……呃……好像是的 其实CDR8难激活主要在于一个点“没有离线激活了,只可以在线激活”,逆天不是专供逆向的,当然没能力去破解,这 ...
- Web Api 入门实战 (快速入门+工具使用+不依赖IIS)
平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...
随机推荐
- BS软件注册
关于BS软件注册问题,目前的方式有通过加密狗访问的方式比较安全,本人为了节省使用成本,采用注册码的形式对每个客户端采用注册码的形式进行认证,防止用户使用同一账号在不同地方登陆使用,也可以防止一个账号, ...
- Reflector+Reflexil 相结合实现对DLL文件修改
在工作过程中,我们有可能遇到这样的问题:公司发给客户的软件包突然报错了,但是你知道哪里报错了,而这个代码已经编译成DLL文件了,源代码不在自己这里.怎么办呢?还好现在有Reflexil插件,这个插件只 ...
- BZOJ3230: 相似子串
3230: 相似子串 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 913 Solved: 223[Submit][Status]Descripti ...
- 【转】Installing OpenCV on Debian Linux
In this post I will describe the process of installing OpenCV(both versions 2.4.2 and 2.4.3) on Debi ...
- awk学习
首先分享一个哥们的文章:http://coolshell.cn/articles/9070.html
- PC-红警联机问题与下载
或许不是软件问题: 你做好相关设置了吗? 红警局域网联机的具体方法: 适用于原版红警.尤里复仇,及任何同样的扩展版. 第一步:安装IPX协议. 方法: 控制面板——网络连接(或网上邻居·属性)——本地 ...
- freemarker list (长度,遍历,下标,嵌套,排序)
1. freemarker获取list的size : Java ArrayList<String> list = new ArrayList<String>(); Freema ...
- Webview 中 Javascript 无法调用 Java 对象
[问题产生] Webview 通过 addjavascriptInterface 传递对象给前端,一切正常.但是 Android官方已提醒此功能是有安全风险,改用 safe-java-js-webvi ...
- Identity-第二章
运用Asp.Net Identity 问题 解决方案 清单号 准备用户认证的应用程序 运用Authorize注解属性来限制对动作方法的访问,并定义一个对用户重定向的控制器,以便让用户提供凭据 1–4 ...
- 动态获取jar文件的路径
下面专门封装了一个类来处理: import java.io.File; /** * 获取打包后jar的路径信息 * @author Administrator * 2011-01-16 13:53 ...