📅  最后修改于: 2023-12-03 15:34:04.561000             🧑  作者: Mango
在使用 Python 和 SQLite 来管理数据时,更新(Update)已存在的数据是一个经常用到的操作。SQLite 提供了 UPDATE 语句来更新已存在的记录。在 Python 中,可使用 SQLite 提供的 cursor 对象来执行 UPDATE 语句。
以下是更新单个记录的示例,假设需要将一个人的年龄从 25 岁更新为 30 岁:
import sqlite3
# 连接数据库
conn = sqlite3.connect('example.db')
# 创建游标对象
cursor = conn.cursor()
# 更新记录
cursor.execute("UPDATE person SET age = 30 WHERE name = 'John'")
# 提交更改
conn.commit()
# 关闭数据库连接
conn.close()
在该示例中,首先使用 sqlite3
模块中的 connect()
方法连接到 SQLite 数据库。接着,利用连接对象 conn
创建游标 cursor
对象,并使用 cursor.execute()
方法执行 UPDATE 语句,将名为 "John" 的人的年龄从 25 岁更新到了 30 岁。最后,使用 conn.commit()
方法提交更改并关闭数据库连接。
要同时更新多个记录,只需在 UPDATE 语句中使用 WHERE 子句与适当的逻辑运算符。以下示例将更新所有年龄超过 30 岁的人的工资:
import sqlite3
# 连接数据库
conn = sqlite3.connect('example.db')
# 创建游标对象
cursor = conn.cursor()
# 更新记录
cursor.execute("UPDATE person SET salary = 8000 WHERE age > 30")
# 提交更改
conn.commit()
# 关闭数据库连接
conn.close()
在该示例中,使用了 WHERE
子句和大于(>
)符号来更新符合条件的所有记录。注意,如果不加 WHERE
子句,则所有记录都将被更新。
要同时更新多个字段,只需在 UPDATE 语句中指定字段名和新值即可。以下示例将同时更新年龄和工资:
import sqlite3
# 连接数据库
conn = sqlite3.connect('example.db')
# 创建游标对象
cursor = conn.cursor()
# 更新记录
cursor.execute("UPDATE person SET age = 35, salary = 10000 WHERE name = 'John'")
# 提交更改
conn.commit()
# 关闭数据库连接
conn.close()
在该示例中,将 age
和 salary
字段的新值同时指定为 35 和 10000,然后根据名为 "John" 的人来更新该记录。
以上就是 Python SQLite 中如何更新已存在的数据的介绍。在实践中使用 UPDATE 语句时,应该特别注意指定 WHERE 子句,以免误操作更新了错误的记录。同时,使用 SQLite 的事务机制可以确保在发生错误时能回滚更改,从而保证数据的完整性。