به روزرسانی (Update)
وقتی می خواهیم مقدار یک رکورد را عوض کنیم، از «UPDATE» استفاده می کنیم. «رکورد (Record)» یعنی یک سطر از جدول. همچنین «ستون (Column)» یعنی یک فیلد مثل نام یا آدرس.
به روزرسانی رکوردها در جدول
با UPDATE مقدار ستون ها عوض می شود. حتماً شرط WHERE بگذار تا همه رکوردها تغییر نکنند.
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "UPDATE customers SET address = 'Canyon 123' WHERE address = 'Valley 345'"
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, "record(s) affected")
نکته: تابع mydb.commit() تغییرات را دائمی می کند. بدون آن، چیزی ذخیره نمی شود.
هشدار: اگر WHERE را حذف کنی، همه رکوردها به روزرسانی می شوند.
جلوگیری از تزریق SQL
«تزریق SQL (SQL Injection)» یعنی واردکردن ورودی خطرناک برای دستکاری پایگاه داده. با جای نگهدار %s ورودی ها امن می شوند.
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "UPDATE customers SET address = %s WHERE address = %s"
val = ("Canyon 123", "Valley 345")
mycursor.execute(sql, val)
mydb.commit()
print(mycursor.rowcount, "record(s) affected")
گام های عملی
- به دیتابیس وصل شو و Cursor بگیر.
- عبارت UPDATE را با WHERE بنویس.
- اگر ورودی داری، از %s استفاده کن.
- دستور را اجرا کن و commit بزن.
- rowcount را چک کن و نتیجه بگیر.
لینک های داخلی پیشنهادی
برای فیلتر نتایج، بخش شرط Where را ببین. همچنین برای خواندن داده ها، به انتخاب (Select) سر بزن.
جمع بندی سریع
- UPDATE مقدار ستون ها را تغییر می دهد.
- همیشه WHERE بگذار برای ایمنی.
- commit فراموش نشود.
- برای امنیت، از %s استفاده کن.
- rowcount تعداد تغییرات را می گوید.