运行mysql和postgresql查询并将结果存储在csv中

sql2csv的Python项目详细描述


PypiBuild StatuscodecovMIT licensed

运行mysql和postgresql查询并将结果存储在csv中。

为什么选择sql2csv

sql2csv是一个运行mysql和postgresql查询和 将输出存储在csv文件中。

在某些环境中,比如在aws rds中使用mysql或aurora时, 使用本机工具无法将查询结果导出到CSV。 sql2csv是一个提供此功能的简单模块。

安装

pip3 install sql2csv

# Basic usage
mysql [...] -e "SELECT * FROM table"| sql2csv
# or
psql [...] -c "SELECT * FROM table"| sql2csv

示例

来自stdin

对于简单查询,可以直接从mysqlpsqlsql2csv

对于更复杂的查询,建议使用cli(请参见下文) 以确保CSV格式正确。

mysql -U root -p"secret" my_db -e "SELECT * FROM some_mysql_table;"| sql2csv

id,some_int,some_str,some_date
1,12,hello world,2018-12-01 12:23:12
2,15,hello,2018-12-05 12:18:12
3,18,world,2018-12-08 12:17:12
psql -U postgres my_db -c "SELECT * FROM some_pg_table"| sql2csv

id,some_int,some_str,some_date
1,12,hello world,2018-12-01 12:23:12
2,15,hello,2018-12-05 12:18:12
3,18,world,2018-12-08 12:17:12

使用sql2csvcli

输出到标准输出
$ sql2csv --engine mysql \
  --database my_db --user root --password "secret"\
  --query "SELECT * FROM some_mysql_table"1,12,hello world,2018-12-01 12:23:12
2,15,hello,2018-12-05 12:18:12
3,18,world,2018-12-08 12:17:12

输出保存在文件中
$ sql2csv --engine mysql \
  --database my_db --user root --password "secret"\
  --query "SELECT * FROM some_mysql_table"\
  --out file --destination_file export.csv

# * Exporting rows...
#   ...done
# * The result has been exported to export.csv.

$ cat export.csv
1,12,hello world,2018-12-01 12:23:12
2,15,hello,2018-12-05 12:18:12
3,18,world,2018-12-08 12:17:12

用法

usage: sql2csv [-h][-e {mysql,postgresql}][-H HOST][-P PORT] -u USER
               [-p PASSWORD] -d DATABASE -q QUERY [-o {stdout,file}][-f DESTINATION_FILE][-D DELIMITER][-Q QUOTECHAR]

optional arguments:
  -h, --help            show this help message and exit
  -e {mysql,postgresql}, --engine {mysql,postgresql}
                        Database engine
  -H HOST, --host HOST  Database host
  -P PORT, --port PORT  Database port
  -u USER, --user USER  Database user
  -p PASSWORD, --password PASSWORD
                        Database password
  -d DATABASE, --database DATABASE
                        Database name
  -q QUERY, --query QUERY
                        SQL query
  -o {stdout,file}, --out {stdout,file}
                        CSV destination
  -f DESTINATION_FILE, --destination_file DESTINATION_FILE
                        CSV destination file
  -D DELIMITER, --delimiter DELIMITER
                        CSV delimiter
  -Q QUOTECHAR, --quotechar QUOTECHAR
                        CSV quote character

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java需要一种简单的方法来创建用于排序的comparator类   java getReadableDatabase和getWriteableDatabase无法解析   查找列表<Long>中与某个元素对应的所有索引的java方法   安卓将视图添加到ViewFlipper会导致java。StackOverflowerr语言   java根据它所包含的长“curTime”类字段将N的列表拆分为24(小时)   Android N中的Java8流API   自动生成Java策略文件的安全性   垃圾收集鼓励Java中的主要GC(但不是STW GC)   java如何检查UDP服务器上侦听的客户端数量   在前一台主机被Datastax Java驱动程序关闭后,Cassandra尝试重新连接到下一台主机   java如何使用Spring Boot创建部分代理   java是否有一个网站或资源可以完全比较EJB版本   java无需使用第三方库从gradle生成输出   继承由于这个多态性的基本示例中的语法有什么不同吗?(爪哇)   java字符串数组中的空字符串   java为什么CMS中的初始标记阶段是串行的   为什么Lucene有时与InChIKeys不匹配?   安卓通知Java应用程序数据库中的更改   java如何将单个json对象值解析为按钮   java打印堆栈将运行时错误跟踪到文件