欢迎访问宙启技术站
智能推送

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方法完成对数据库的操作。