删除记录
可以使用“DELETE FROM”语句,从现有表中删除记录:
示例
删除地址为“Mountain 21”的记录:
1import mysql.connector 2 3mydb = mysql.connector.connect( 4 host="localhost", 5 user="你的用户名", 6 passwd="你的密码", 7 database="mydatabase" 8) 9 10mycursor = mydb.cursor() 11 12sql = "DELETE FROM customers WHERE address = 'Mountain 21'" 13 14mycursor.execute(sql) 15 16mydb.commit() 17 18print(mycursor.rowcount, " 条记录删除")
注意: 数据库修改后,需要使用
mydb.commit()语句提交,不提交,修改不会生效。
注意DELETE语句中的WHERE子句: WHERE子句指定应该删除哪些记录。如果省略WHERE子句,将删除所有记录!
防止SQL注入
在delete语句中,为了防止SQL注入,通常应该转义查询值。
SQL注入是一种常见的web黑客技术,用于破坏或误用数据库。
mysql.connector 模块有方法可以转义查询值:
示例
使用占位符%s方法转义查询值:
1import mysql.connector 2 3mydb = mysql.connector.connect( 4 host="localhost", 5 user="你的用户名", 6 passwd="你的密码", 7 database="mydatabase" 8) 9 10mycursor = mydb.cursor() 11 12sql = "DELETE FROM customers WHERE address = %s" 13adr = ("Yellow Garden 2", ) 14 15mycursor.execute(sql, adr) 16 17mydb.commit() 18 19print(mycursor.rowcount, " 条记录删除")