📜  使用Python将变量插入数据库表

📅  最后修改于: 2020-04-10 15:07:04             🧑  作者: Mango

在本文中,我们将看到如何使用变量插入用户数据。
在这里,我们使用sqlite模块在数据库上工作,但是在此之前,我们需要导入该程序包

import sqlite3

要查看数据库级别的操作,只需下载SQLite浏览器数据库
注意:在演示中,我们使用了某些值,但是您可以输入而不是这些样本值。
在数据库中创建和插入变量的步骤
代码1:创建数据库

conn = sqlite3.connect('PythonDB.db')
c = conn.cursor()

说明:
我们已经初始化了数据库PythonDB.py。如果数据库不存在,此指令将创建数据库。如果存在与定义的名称相同的数据库,则它将进一步移动。在第二条语句中,我们使用名为的sqlite3方法cursor(),这有助于您将数据库启动为活动数据库。
游标是由连接cursor()方法创建的,它们在整个生命周期内都绑定到连接,并且所有命令都在连接所包裹的数据库会话的上下文中执行。
代码2:创建表

def create_table():
    c.execute('CREATE TABLE IF NOT EXISTS RecordONE (Number REAL, Name TEXT)')

说明:
我们使用了一个函数create_table。如SQLite数据库查询中所写,这将帮助您创建表(如果不存在)。当我们通过RecordONE初始化表名。之后,我们根据需要传递尽可能多的参数,我们只需要提供一个属性名称及其类型,这里我们使用REAL和Text。
代码3:插入表格

def data_entry():
    number = 1234
    name = "芒果文档"
    c.execute("INSERT INTO RecordONE (Number, Name) VALUES(?, ?)",
                                                  (number, name))
    conn.commit()

说明:
另一个名为data_entry的函数。我们正在尝试通过用户输入或通过变量将值添加到数据库中。我们使用该方法执行查询。然后使用该方法保存您在上面所做的更改。 execute()commit()


代码4:方法调用并关闭连接。

create_table()
data_entry()
c.close()
conn.close()

说明:
我们通常使用方法调用,如果要编写无错误代码,也请记住关闭和数据库连接以备下次使用,因为如果不关闭,就无法再次打开连接。

现在让我们看完整的示例。
例:

import sqlite3
conn = sqlite3.connect('PythonDB.db')
c = conn.cursor()
def create_table():
    c.execute('CREATE TABLE IF NOT EXISTS RecordONE (Number REAL, Name TEXT)')
def data_entry():
    number = 1234
    name = "芒果文档"
    c.execute("INSERT INTO RecordONE (Number, Name) VALUES(?, ?)", (number, name))
    conn.commit()
create_table()
data_entry()
c.close()
conn.close()

输出:

使用data_entry()方法再插入一个值。

def data_entry():
    number = 4321
    name = "Author"
    c.execute("INSERT INTO RecordONE (Number, Name) VALUES(?, ?)", (number, name))
    conn.commit()

输出: 

Method-1

(1007, 'Will', 'Olsen', 'M', '24-SEP-1865')
(1008, 'Rkb', 'Boss', 'M', '27-NOV-1864')
(1098, 'Sak', 'Rose', 'F', '27-DEC-1864')
(1908, 'Royal', 'Bassen', 'F', '17-NOV-1894')

Method-2

(1007, 'Will', 'Olsen', 'M', '24-SEP-1865')
(1008, 'Rkb', 'Boss', 'M', '27-NOV-1864')
(1098, 'Sak', 'Rose', 'F', '27-DEC-1864')
(1908, 'Royal', 'Bassen', 'F', '17-NOV-1894')