حذف (Delete)
می خواهیم رکوردها را پاک کنیم. دستور «DELETE FROM» این کار را انجام می دهد. همیشه با «WHERE» هدف را مشخص کن؛ وگرنه همه پاک می شود!
حذف رکورد با WHERE و commit
بعد از اجرا، باید mydb.commit() بزنیم. commit یعنی ثبت تغییرات در دیتابیس.
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")
جلوگیری از تزریق SQL با placeholder
تزریق SQL یک هک است. با جای نگهدار %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")
گام های عملی
- اتصال بساز و Cursor آماده کن.
- DELETE با شرط WHERE بنویس.
- اگر ورودی کاربر است، %s استفاده کن.
- اجرا کن و سپس commit بزن.
- نتیجه rowcount را بررسی کن.
هشدار: بدون WHERE همه رکوردها پاک می شود. همیشه شرط را دوباره چک کن.
لینک های داخلی پیشنهادی
برای مرتب سازی قبل از حذف، صفحه مرتب سازی (Order By) را ببین. برای حذف کل جدول، سر بزن به حذف جدول (Drop Table).
جمع بندی سریع
- DELETE حتماً با WHERE بیاید.
- بعد از DELETE، commit ضروری است.
- برای امنیت از %s استفاده کن.
- با rowcount تعداد حذف را ببین.