如何在Python执行多个 SQLite 语句?
在 SQLite 中使用 executescript() 方法,我们可以一次执行多个 SQL 语句/查询。基本的 execute() 方法允许我们一次只接受一个查询,因此当您需要执行多个查询时,我们需要像脚本一样排列它们并将该脚本传递给 executescript() 方法。
executescript() 可以连续执行一系列 SQL/SQLite 查询。当 executescript() 操作正在运行时,其他线程/操作在 executescript() 执行完所有查询之前无法访问数据库。如果我们需要为 executescript() 中的每个查询提供一些运行时参数,我们不能在运行时添加外部参数,因为 executescript() 方法在运行时不接受查询的任何参数,因此您需要提供一组静态查询作为脚本。在executescript()方法的执行中,首先发出COMMIT语句,然后执行SQL/SQLite脚本。
句法:
cursor_obj.executescript("""
SQLite Statement/Query . . . 1
SQLite Statement/Query . . . 2
SQLite Statement/Query . . . 3
.
.
.
SQLite Statement/Query . . . n
""")
下面的代码显示了如何在Python执行多个 SQLite 语句/查询:
Python3
import sqlite3
# make the database connection and cursor object
connection = sqlite3.connect("CollegeData.db")
cursor = connection.cursor()
# create a set of queries in executescript()
# below set of queries will create and insert
# data into table
cursor.executescript("""
CREATE TABLE department( deptId INTEGER,
deptName VARCHAR(20), deptScore INTEGER);
INSERT INTO department VALUES ( 01,'IT', 850 );
INSERT INTO department VALUES ( 02,'COMP', 840 );
INSERT INTO department VALUES ( 03,'CIVIL', 500 );
INSERT INTO department VALUES ( 04,'E&TC', 650 );
""")
# fetch the table data
print("Table data :")
cursor.execute("SELECT * FROM department")
print(cursor.fetchall())
# below set of queries will update the data
# of in the table
cursor.executescript("""
UPDATE department set deptScore = 900 where deptId = 01;
UPDATE department set deptScore = 890 where deptId = 02;
UPDATE department set deptScore = 660 where deptId = 03;
UPDATE department set deptScore = 790 where deptId = 04;
""")
# fetch the table data after updation
print("Table data after updation :")
cursor.execute("SELECT * FROM department")
print(cursor.fetchall())
# commit the changes and close the database
# connection
connection.commit()
connection.close()
输出
Table data :
[(1, ‘IT’, 850), (2, ‘COMP’, 840), (3, ‘CIVIL’, 500), (4, ‘E&TC’, 650)]
Table data after updation :
[(1, ‘IT’, 900), (2, ‘COMP’, 890), (3, ‘CIVIL’, 660), (4, ‘E&TC’, 790)]
上面的代码一次执行多个 SQLite 语句。代码中的第一个 executescript() 方法在一个实例中创建数据并将其插入到表中。然后第二个 executescript() 方法更新一个实例中的所有记录。通过这种方式,可以在 SQLite 中使用 executescript() 执行一组许多查询。