Python MySQL Delete From By
レコードを削除
「DELETE FROM」ステートメントを使用して、既存のテーブルからレコードを削除できます。
例
住所が「Mountain 21」であるレコードをすべて削除します。
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="<em>yourusername</em>",
password="<em>yourpassword</em>",
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インジェクションを防ぐ
削除ステートメントでも、クエリの値をエスケープすることをお勧めします。
これは、データベースを破壊したり悪用したりする一般的なWebハッキング手法であるSQLインジェクションを防ぐためです。
mysql.connectorモジュールは、プレースホルダー%s
を使用して、削除ステートメント内の値をエスケープします。
例
プレースホルダー%s
メソッドを使用して値をエスケープします。
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="<em>yourusername</em>",
password="<em>yourpassword</em>",
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")
実行例 »プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。