Python MySQL – Delete Data from a Table

摘要:在本教程中,您将学习如何使用 Python 从 MySQL 数据库的表中删除数据。

要从 Python 程序中删除表中的数据,请执行以下步骤:

  1. 通过创建新的MySQLConnection对象连接到数据库
  2. 实例化一个新的游标对象并调用其execute()方法。要提交更改,您应该始终在调用execute()方法之后调用MySQLConnection对象的commit()方法。
  3. 通过调用相应对象的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)
Python MySQL Delete Example

运行上面的模块后,我们再次执行SELECT 语句。没有返回任何行。这意味着模块已成功删除该条目。

在本教程中,您学习了如何使用 MySQL Connector/Python API 从表中删除数据。

本教程有帮助吗?