目录

Python MySQL 删除


删除记录

您可以使用 "DELETE FROM" 语句从现有表中删除记录:

示例

删除地址为 "Mountain 21" 的所有记录:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user=" yourusername",
  password=" yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

sql = "DELETE FROM customers WHERE address = 'Mountain 21'"

mycursor.execute(sql)

mydb.commit()

print(mycursor.rowcount, "record(s) deleted")
运行示例 »

重要的!:注意声明:mydb.commit()。必须进行更改,否则不会对表进行任何更改。

请注意 DELETE 语法中的 WHERE 子句:WHERE 子句指定应删除哪些记录。如果省略 WHERE 子句,所有记录都将被删除!



防止SQL注入

转义任何查询的值被认为是一种很好的做法,在删除语句中也是如此。

这是为了防止 SQL 注入,这是一种常见的网络黑客技术,旨在破坏或滥用您的数据库。

mysql.connector 模块使用占位符%s转义删除语句中的值:

示例

使用占位符转义值%s方法:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user=" yourusername",
  password=" yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

sql = "DELETE FROM customers WHERE address = %s"
adr = ("Yellow Garden 2", )

mycursor.execute(sql, adr)

mydb.commit()

print(mycursor.rowcount, "record(s) deleted")
运行示例 »