摘要:在本教程中,您将学习如何使用 Python 从 MySQL 数据库的表中删除数据。
要从 Python 程序中删除表中的数据,请执行以下步骤:
- 通过创建新的
MySQLConnection
对象连接到数据库。 - 实例化一个新的游标对象并调用其
execute()
方法。要提交更改,您应该始终在调用execute()
方法之后调用MySQLConnection
对象的commit()
方法。 - 通过调用相应对象的
close()
方法关闭游标和数据库连接。
以下示例展示了如何删除由图书 id 指定的图书:
from mysql.connector import MySQLConnection, Error
from python_mysql_dbconfig import read_db_config
def delete_book(book_id):
db_config = read_db_config()
query = "DELETE FROM books WHERE id = %s"
try:
# connect to the database server
conn = MySQLConnection(**db_config)
# execute the query
cursor = conn.cursor()
cursor.execute(query, (book_id,))
# accept the change
conn.commit()
except Error as error:
print(error)
finally:
cursor.close()
conn.close()
if __name__ == '__main__':
delete_book(102)
Code language: Python (python)
请注意,我们使用python_mysql_dbconfig模块中的read_db_config()
函数。
因为我们需要删除books
表中的特定行,所以我们在DELETE
语句中使用占位符 ( %
)。
当我们调用execute()
方法时,我们传递DELETE
语句和(book_id,)
元组。连接器会将DELETE
语句转换为以下形式:
DELETE FROM books
WHERE id = 102;
Code language: Python (python)
您应该始终在传递给execute()
方法的任何查询中使用占位符。这可以帮助您避免 SQL 注入。
在运行代码之前,让我们在删除条目之前检查books
表以查看数据。
SELECT * FROM books
WHERE id = 102;
Code language: SQL (Structured Query Language) (sql)
运行上面的模块后,我们再次执行SELECT 语句。没有返回任何行。这意味着模块已成功删除该条目。
在本教程中,您学习了如何使用 MySQL Connector/Python API 从表中删除数据。
本教程有帮助吗?