摘要:在本教程中,您将学习如何使用 Python 从 MySQL 数据库的表中删除数据。
若要从 Python 程序中删除表中的数据,请执行以下步骤:
- 通过创建新对象连接到数据库。MySQLConnection
- 实例化一个新的游标对象并调用其方法。若要提交更改,应始终在调用方法后调用对象的方法。execute()commit()MySQLConnectionexecute()
- 通过调用相应对象的方法关闭游标和数据库连接。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)
应始终在传递给该方法的任何查询中使用占位符。这有助于避免 SQL 注入。execute()
在运行代码之前,让我们在删除条目之前检查表以查看数据。books
SELECT * FROM books
WHERE id = 102;Code language: SQL (Structured Query Language) (sql)
运行上面的模块后,我们再次执行 SELECT 语句。不返回任何行。这意味着模块已成功删除该条目。
在本教程中,您学习了如何使用 MySQL 连接器/Python API 从表中删除数据。