در SQL، از دستور UPDATE برای تغییر اطلاعات موجود در یک جدول استفاده می‌شود. این دستور به ما امکان می‌دهد مقادیر یک یا چند ستون را در یک یا چند ردیف تغییر دهیم. اما باید مراقب باشیم! چون اگر بدون دقت از این دستور استفاده کنیم، ممکن است همه داده‌های جدول تغییر کنند. 😱


📌 نحوه نوشتن دستور UPDATE

ساختار کلی دستور UPDATE به شکل زیر است:

UPDATE نام_جدول
SET ستون1 = مقدار1, ستون2 = مقدار2, ...
WHERE شرط;

دربالا

🔹 UPDATE: مشخص می‌کند که می‌خواهیم داده‌های یک جدول را تغییر دهیم.
🔹 SET: ستون‌هایی که می‌خواهیم مقدارشان تغییر کند را مشخص می‌کند.
🔹 WHERE: تعیین می‌کند که کدام ردیف‌ها به‌روزرسانی شوند. اگر این قسمت را ننویسیم، همه ردیف‌های جدول تغییر می‌کنند!


🎯 مثال: تغییر اطلاعات یک مشتری

فرض کنید یک جدول Customers داریم که شامل اطلاعات مشتریان است:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico

حالا فرض کنید که تماس‌گیرنده (ContactName) مشتری با CustomerID = 1 تغییر کرده و شهر او نیز تغییر کرده است. برای اعمال این تغییرات از دستور زیر استفاده می‌کنیم:

UPDATE Customers
SET ContactName = 'Alfred Schmidt', City = 'Frankfurt'
WHERE CustomerID = 1;

📌 نتیجه: اطلاعات مشتری شماره ۱ به‌روزرسانی می‌شود و حالا جدول به این شکل خواهد بود:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteAlfred SchmidtObere Str. 57Frankfurt12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico

🛠 تغییر چندین ردیف با یک دستور

گاهی می‌خواهیم اطلاعات چندین ردیف را هم‌زمان تغییر دهیم. در این حالت، شرط WHERE مشخص می‌کند که کدام ردیف‌ها آپدیت شوند.

🎯 مثال: تغییر نام تماس‌گیرنده برای مشتریان مکزیکی

فرض کنید می‌خواهیم ContactName همه مشتریانی که در کشور Mexico هستند را به “Juan” تغییر دهیم:

UPDATE Customers
SET ContactName = 'Juan'
WHERE Country = 'Mexico';

📌 نتیجه: حالا جدول این شکلی خواهد شد:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteAlfred SchmidtObere Str. 57Frankfurt12209Germany
2Ana Trujillo Emparedados y heladosJuanAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaJuanMataderos 2312México D.F.05023Mexico

⚠️ هشدار مهم: بدون WHERE همه داده‌ها تغییر می‌کنند!

اگر شرط WHERE را ننویسید، تمام داده‌های جدول تغییر می‌کند! 😨

🎯 مثال: اشتباه رایج

UPDATE Customers
SET ContactName = 'Juan';

📌 نتیجه: حالا ContactName برای همه مشتریان برابر با “Juan” می‌شود! 😱

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteJuanObere Str. 57Frankfurt12209Germany
2Ana Trujillo Emparedados y heladosJuanAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaJuanMataderos 2312México D.F.05023Mexico

😵 درس مهم: همیشه قبل از اجرای دستور UPDATE دقت کنید که WHERE را درست بنویسید!


🤔 چالش برای شما

1️⃣ یک دستور UPDATE بنویسید که City مشتریانی که کشورشان “Sweden” است را به “Stockholm” تغییر دهد.
2️⃣ چه اتفاقی می‌افتد اگر دستور زیر را بدون WHERE اجرا کنیم؟ توضیح دهید!

UPDATE Customers
SET Country = 'USA';

📌 جمع‌بندی

✅ دستور UPDATE برای تغییر اطلاعات یک یا چند ستون در جدول استفاده می‌شود.
✅ با استفاده از WHERE مشخص می‌کنیم که کدام ردیف‌ها باید تغییر کنند.
اگر WHERE را فراموش کنیم، تمام داده‌های جدول تغییر خواهد کرد!
✅ همیشه قبل از اجرای دستور UPDATE بررسی کنید که تغییرات درستی اعمال می‌شوند.