Python中如何在SQLite数据库中执行原始SQL语句
发布时间:2023-12-25 17:26:05
在Python中,可以使用SQLite3标准库来执行原始SQL语句。以下是使用Python中的SQLite3库执行原始SQL语句的步骤及示例代码。
步骤1:创建或连接到数据库
要执行原始SQL语句,需要首先创建或连接到SQLite数据库。可以使用SQLite3库中的connect()函数来创建或连接到数据库。连接到数据库后,可以使用cursor()方法创建一个游标对象,该对象可用于执行SQL语句。
import sqlite3
# 连接到数据库,如果不存在则创建一个新的数据库
conn = sqlite3.connect('example.db')
# 创建一个游标对象
cursor = conn.cursor()
步骤2:执行原始SQL语句
要执行原始SQL语句,可以使用游标对象的execute()方法。该方法接收一个字符串参数,该参数为要执行的SQL语句。执行SQL语句后,可以使用fetchone()、fetchall()等方法获取查询结果。
# 执行原始SQL语句
cursor.execute('原始SQL语句')
# 获取查询结果
result = cursor.fetchall()
步骤3:提交更改(可选)
如果在执行原始SQL语句后进行了更改(例如插入、更新或删除数据),可以使用commit()方法提交更改。
# 提交更改 conn.commit()
步骤4:关闭连接
在完成对数据库的操作后,应该关闭连接。
# 关闭连接 conn.close()
使用示例:
接下来,我们将以一个完整的示例来演示如何在SQLite数据库中执行原始SQL语句。
底下是一个示例,用于创建一个包含用户信息的表并插入一些数据,并查询作为示例来演示如何执行原始SQL语句。
import sqlite3
# 连接到数据库,如果不存在则创建一个新的数据库
conn = sqlite3.connect('example.db')
# 创建一个游标对象
cursor = conn.cursor()
# 创建一个包含用户信息的表
cursor.execute('''CREATE TABLE users
(id INT PRIMARY KEY NOT NULL,
name TEXT NOT NULL,
age INT NOT NULL,
address CHAR(50),
salary REAL);''')
# 插入一些数据
cursor.execute("INSERT INTO users (id,name,age,address,salary) \
VALUES (1, 'Alice', 18, 'New York', 2000.0 )")
cursor.execute("INSERT INTO users (id,name,age,address,salary) \
VALUES (2, 'Bob', 25, 'London', 1500.0 )")
cursor.execute("INSERT INTO users (id,name,age,address,salary) \
VALUES (3, 'Charlie', 30, 'Paris', 3000.0 )")
# 执行查询
cursor.execute("SELECT * from users")
# 获取查询结果
result = cursor.fetchall()
print(result)
# 提交更改
conn.commit()
# 关闭连接
conn.close()
上述示例首先创建一个名为example.db的SQLite数据库,并创建一个名为users的表。然后,使用insert语句插入一些用户数据。接下来,使用select语句查询所有用户信息,并打印结果。最后,通过调用commit和close方法完成对数据库的操作。
