حذف رکورد داده در پایگاه داده MySQL
حذف رکورد داده
با استفاده از عبارت "DELETE FROM" می توانید سوابق را از جدول موجود حذف کنید.
در قطعه کد زیر هر سابقه ای که آدرس آن "Mountain 21" باشد را حذف می کند:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="myusername",
passwd="mypassword",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "DELETE FROM customers WHERE address = 'Mountain 21'"
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, "record(s) deleted")
خروجی:
1 record(s) deleted
نکته: به این عبارت توجه کنید" mydb.commit ()" برای ایجاد تغییرات لازم است ، در غیر این صورت تغییری در جدول ایجاد نمی شود.
به بند WHERE در نحو DELETE توجه کنید: بند WHERE مشخص می کند کدام رکورد (ها) باید حذف شود. اگر بند WHERE را حذف کنید ، تمام سوابق حذف می شوند!
جلوگیری از تزریق SQL
فرار از مقادیر هرگونه پرسش ، همچنین در دستورات حذف ، یک روش خوب در نظر گرفته می شود.
این کار برای جلوگیری از تزریق SQL است که یک روش هک وب مشترک برای تخریب یا سو استفاده از پایگاه داده شما است.
ماژول mysql.connector از مکان یاب٪ s برای فرار از مقادیر در دستور حذف استفاده می کند:
برای مثال در قطعه کد زیر با استفاده از روش مکان یاب٪ s از مقادیر فرار می کند:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="myusername",
passwd="mypassword",
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")
خروجی:
1 record(s) deleted