簡體   English   中英

在sqlite3 python中創建一個表

[英]creating a table in 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM