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

Python中使用update语句更新SQLite数据库中的多条数据

发布时间:2024-01-14 06:25:59

在Python中使用update语句更新SQLite数据库中的多条数据,可以使用execute()方法执行SQL语句。下面是一个具体的例子:

import sqlite3

# 连接到SQLite数据库
conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# 创建一个表格
cursor.execute('''CREATE TABLE IF NOT EXISTS employees
                  (id INT PRIMARY KEY NOT NULL,
                   name TEXT NOT NULL,
                   salary REAL NOT NULL)''')

# 插入一些数据
cursor.execute("INSERT INTO employees (id, name, salary) VALUES (1, 'John Doe', 5000)")
cursor.execute("INSERT INTO employees (id, name, salary) VALUES (2, 'Jane Smith', 6000)")
cursor.execute("INSERT INTO employees (id, name, salary) VALUES (3, 'Bob Johnson', 4000)")

# 提交事务
conn.commit()

# 更新数据
new_salary = 5500
cursor.execute("UPDATE employees SET salary = ? WHERE id IN (1, 3)", (new_salary,))

# 提交事务
conn.commit()

# 查询更新后的数据
cursor.execute("SELECT * FROM employees")
rows = cursor.fetchall()
for row in rows:
    print(row)

# 关闭数据库连接
conn.close()

上述例子中,首先我们创建一个名为"employees"的表格,然后插入了3条数据。接下来,我们使用update语句将id为1和3的员工的薪资更新为5500。最后,我们查询更新后的数据并打印出来。

在update语句中,我们使用了WHERE id IN (1, 3)来指定了要更新的数据的条件,即id为1和3。?是一个占位符,对应着后面的(new_salary,)参数,用来传递薪资数据。这样做可以防止SQL注入攻击。

最后,我们使用fetchall()方法获取所有的查询结果,并通过循环打印出来。

需要注意的是,操作完成之后,需要调用commit()方法提交事务,否则数据的更新不会生效。

希望以上例子对你有所帮助!