Python MySQL Delete From By
レコードを削除
「DELETEFROM」ステートメントを使用して、既存のテーブルからレコードを削除できます。
例
アドレスが「Mountain21」であるレコードを削除します。
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インジェクションを防ぐ
また、deleteステートメントでも、クエリの値をエスケープすることをお勧めします。
これは、データベースを破壊または誤用する一般的なWebハッキング手法であるSQLインジェクションを防ぐためです。
mysql.connectorモジュールは、プレースホルダーを使用%s
して、deleteステートメントの値をエスケープします。
例
%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")