如何将查询结果从数据库管理器导出到SQLite中的CVS文件?

如何将查询结果从数据库管理器导出到SQLite中的CVS文件?,sqlite,datagrip,sqlitestudio,Sqlite,Datagrip,Sqlitestudio,我正在使用DataGrip或SQLiteStudio(数据库管理器)在数据库中运行一系列查询,以指导我查找所需的信息。查询工作正常,结果显示在Dabase管理器的控制台中。但是,我需要将数据库管理器控制台中显示的结果导出到CVS文件中 我看到每个人都直接在shell中工作,但是我需要(我必须)使用DB管理器来运行查询(到目前为止,我需要在一个步骤中运行的查询大约有600行) 在sqlite3 shell中,我能够运行(并且可以工作) (.上的标题) (.模式csv) (.output C:/fi

我正在使用DataGrip或SQLiteStudio(数据库管理器)在数据库中运行一系列查询,以指导我查找所需的信息。查询工作正常,结果显示在Dabase管理器的控制台中。但是,我需要将数据库管理器控制台中显示的结果导出到CVS文件中

我看到每个人都直接在shell中工作,但是我需要(我必须)使用DB管理器来运行查询(到目前为止,我需要在一个步骤中运行的查询大约有600行)

在sqlite3 shell中,我能够运行(并且可以工作) (.上的标题) (.模式csv) (.output C:/filename.csv) (从“6000个1000个结果”中选择*) (.输出标准输出)

但是,在DB管理器的sql编辑器中运行此代码根本不起作用

--(.....)
--(around 600 lines before)
--(.....)
    "Material ID",
    "Material Name",
    SUM("Quantity of Material")  Quantity
FROM
     "6000_1000_Results_Temp"
GROUP BY
  "DataCenterID", "Material ID";

------------------------------------------------------------
--(HERE IS WHERE I NEED TO EXPORT THE RESULTS IN A CVS FILE)
------------------------------------------------------------
.headers on
.mode csv
.output C:/NextCloudLuis/TemproDB.git/csvtest.csv
select * from "6000_1000_Results";
.output stdout
.show

DROP TABLE IF EXISTS "6000_1000_Results_Temp";
DROP TABLE IF EXISTS "6000_1000_Results";

Datagrip不显示任何错误,它在几秒钟内运行查询,但任何地方都没有文件,SQLiteStudio给出了一个语法错误。

最后,我在接下来的步骤中解决了这个问题: 我使用lybrary sqlite3运行python所有查询。然后,所有查询的结果都保存在一个数据帧中。然后,数据帧将导出到cvs和xlxs文件

以下是python代码:

import sqlite3
import queries

conn = sqlite3.connect("tempro.db")  #make the database connection to python
level4000 = queries.level4000to1000(conn) #I call the function in queries.py
level4000.to_csv('Level4000to1000.csv') #export result ro cvs
level4000.to_excel('Level4000to1000.xlsx') #export result ro xlsx
conn.close() 
这是我保存所有查询的python文件(querys.py)


最后,似乎没有办法使用SQL编码将结果导出为cvs格式的文件。

我不希望sqlite shell dot命令在sqlite shell之外的任何地方都能工作。您是否阅读了正在使用的替代程序的文档,以查看它们是否支持导出到csv?是的,DB manager可以使用一些CLIC将结果导出到cvs文件中,但最后我需要使用python和最终用户(我的老板)编写脚本只需要在脚本上加倍clic,并在cvs文件中获得一些计算和数据(这是我的问题),您需要一次将多个查询导出到CSV文件吗?是的,我有30个不同的查询(管理、组织和获取我正在查找的信息)。在DataGrip中,我一步执行所有这些查询。最后,我只提取了一个表的信息,这就是我需要的信息。我需要使用最终查询将最终信息导出到CVS文件中。在python中,我执行30个查询,然后将最终信息保存在数据帧中。最后,我将数据帧导出到CVS或Excel文件中。你们觉得我应该把这个话题留着谈吗?也许有人知道如何通过查询直接在Datagrip或任何数据管理器中执行此操作。请随意接受您自己的答案,因为这将在将来帮助其他人
import sqlite3
from sqlite3 import Error
import pandas as pd


def level4000to1000(conn):

    cur = conn.cursor()
    cur.executescript(
        """
            /* Here I put all the 600 lines of queries */
            DROP TABLE IF EXISTS "4000_1000_Results_Temp";
            DROP TABLE IF EXISTS "4000_1000_Results";

            /* Here more and more lines */
            --To keep the results from all queries
            CREATE TABLE "4000_1000_Results_Temp" (
                "DeviceID"      INTEGER,
                "Device Name"   TEXT,
                             SUM("Quantity of Material")  Quantity
            FROM
                 "4000_1000_Results_Temp"
            GROUP BY
              "DeviceID", "Material ID";
            """)

    df = pd.read_sql_query('''SELECT  * FROM "4000_1000_Results";''', conn)
    cur.executescript("""DROP TABLE IF EXISTS "4000_1000_Results_Temp";
                      DROP TABLE IF EXISTS "4000_1000_Results";""")
    return df #returns a dataframe with the info results from the queries