在sqlite3 python中创建一个表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在sqlite3 python中创建一个表相关的知识,希望对你有一定的参考价值。

我提前为提出这样一个基本问题道歉,但我是SQlite3的新手并且无法启动。我正在尝试使用一个表构建数据库。我使用以下代码来构建表。

import sqlite3
conn = sqlite3.connect('example.db')
c = conn.cursor()
c.execute('''CREATE TABLE mytable
         (start, end, score)''')

但每当我尝试更新或访问表时,似乎它不存在或者它可能存在于不同的数据库中。我也尝试创建一个名为example.mytable的表但是我得到了错误:sqlite3.OperationalError:未知的数据库示例

我错过了什么?谢谢

答案

我认为在插入之后需要提交(诸如新表之类的模式更改应该自动提交)。我建议添加数据库的完整路径,以确保下次访问同一位置。

这是您的代码的扩展:

import sqlite3

def create():
    try:
        c.execute("""CREATE TABLE mytable
                 (start, end, score)""")
    except:
        pass

def insert():
    c.execute("""INSERT INTO mytable (start, end, score)
              values(1, 99, 123)""")

def select(verbose=True):
    sql = "SELECT * FROM mytable"
    recs = c.execute(sql)
    if verbose:
        for row in recs:
            print row

db_path = r'C:\Users\Prosserc\Documents\Geocoding\test.db'
conn = sqlite3.connect(db_path)
c = conn.cursor()
create()
insert()
conn.commit() #commit needed
select()
c.close()

输出:

(1, 99, 123)

关闭程序后,如果我登录到SQLite数据库,数据仍然存在。

另一答案
import sqlite3;
import pandas as pd;

con=None

def getConnection():
    databaseFile="./test.db"
    global con
    if con == None:
        con=sqlite3.connect(databaseFile)
    return con

def createTable(con):
    try:
        c = con.cursor()
        c.execute("""CREATE TABLE IF NOT EXISTS Movie
                 (start, end, score)""")
    except Exception as e:
        pass

def insert(con):
    c = con.cursor()
c.execute("""INSERT INTO Movie (start, end, score)
          values(1, 99, 123)""")

def queryExec():
    con=getConnection()
    createTable(con)
    insert(con)
    # r = con.execute("""SELECT * FROM Movie""")
    result=pd.read_sql_query("select * from Movie;",con)
    return result


r = queryExec()
print(r)

以上是关于在sqlite3 python中创建一个表的主要内容,如果未能解决你的问题,请参考以下文章

在 sqlite3 中创建表时出错

在 Visual Studios 中创建 sqlite3.lib 文件/使用 sqlite3 [关闭]

Cocos2d-x中创建SQLite数据库

在片段android中创建listview

使用 Python3 创建一个 sqlite 表

python内置的sqlite3模块,使用其内置数据库