是否有办法将查询结果导出到CSV文件中?
5fjcxozz1#
来自here和d5e5的评论:您必须将输出切换到csv模式并切换到文件输出。
sqlite> .mode csv sqlite> .output test.csv sqlite> select * from tbl1; sqlite> .output stdout
zazmityj2#
要在csv文件中包含列名,可以执行以下操作:
sqlite> .headers on sqlite> .mode csv sqlite> .output test.csv sqlite> select * from tbl1; sqlite> .output stdout
要验证所做的更改,可以运行以下命令:
sqlite> .show
输出:
echo: off explain: off headers: on mode: csv nullvalue: "" output: stdout separator: "|" stats: off width: 22 18
zxlwwiss3#
除了上面的答案,你也可以用类似于.output的方式使用.once,这样就只输出下一个查询到指定的文件,这样你就不必在后面跟着.output stdout了。在上面的例子中
.output
.once
.output stdout
.mode csv .headers on .once test.csv select * from tbl1;
ojsjcaue4#
gdw2和d5e5给出了很好的答案。为了简单一点,下面是一系列命令中的建议:
0s0u357o5#
或者你也可以在一行中完成(在win10中测试)
sqlite3 -help sqlite3 -header -csv db.sqlite 'select * from tbl1;' > test.csv
附加功能:将powershell与cmdlet和管道(|).
get-content query.sql | sqlite3 -header -csv db.sqlite > test.csv
其中query.sql是包含SQL查询的文件
k2fxgqgv6#
所有现有的解决方案都只能在sqlite命令行下运行,如果你想构建一个可重用的脚本,这并不理想,Python可以让你轻松地构建一个可以编程执行的脚本。
import pandas as pd import sqlite3 conn = sqlite3.connect('your_cool_database.sqlite') df = pd.read_sql('SELECT * from orders', conn) df.to_csv('orders.csv', index = False)
您可以自定义查询,以便仅将sqlite表的一部分导出到CSV文件。您还可以运行一个命令将所有sqlite表导出为CSV文件:
for table in c.execute("SELECT name FROM sqlite_master WHERE type='table';").fetchall(): t = table[0] df = pd.read_sql('SELECT * from ' + t, conn) df.to_csv(t + '_one_command.csv', index = False)
有关详细信息,请参见here。
6条答案
按热度按时间5fjcxozz1#
来自here和d5e5的评论:
您必须将输出切换到csv模式并切换到文件输出。
zazmityj2#
要在csv文件中包含列名,可以执行以下操作:
要验证所做的更改,可以运行以下命令:
输出:
zxlwwiss3#
除了上面的答案,你也可以用类似于
.output
的方式使用.once
,这样就只输出下一个查询到指定的文件,这样你就不必在后面跟着.output stdout
了。在上面的例子中
ojsjcaue4#
gdw2和d5e5给出了很好的答案。为了简单一点,下面是一系列命令中的建议:
0s0u357o5#
或者你也可以在一行中完成(在win10中测试)
附加功能:将powershell与cmdlet和管道(|).
其中query.sql是包含SQL查询的文件
k2fxgqgv6#
所有现有的解决方案都只能在sqlite命令行下运行,如果你想构建一个可重用的脚本,这并不理想,Python可以让你轻松地构建一个可以编程执行的脚本。
您可以自定义查询,以便仅将sqlite表的一部分导出到CSV文件。
您还可以运行一个命令将所有sqlite表导出为CSV文件:
有关详细信息,请参见here。