MySQL تحديث الاستعلام مع المثال

⚡ ملخص ذكي

MySQL تُعدّل استعلامات التحديث (UPDATE) الصفوف الموجودة في جدول، مُغيّرةً حقلاً واحداً أو عدة حقول في عبارة واحدة. يشرح هذا المورد صيغة استعلام التحديث، وتصفية WHERE، وأمثلة عملية على جدول الأعضاء، والتدابير الوقائية التي تمنع التحديثات الجماعية غير المقصودة.

  • ✏️ البيان الأساسي: UPDATE `table_name` SET `column_name` = 'new_value' [WHERE condition] rewrites values ​​in every row that match the filter.
  • ⚠️ تم حذفه حيث: بدون شرط WHERE، تقوم عبارة UPDATE بإعادة كتابة العمود في كل صف من الجدول.
  • 🔢 تنسيق القيم: تتطلب قيم السلاسل والتواريخ علامات اقتباس مفردة، بينما لا تتطلب القيم الرقمية ذلك، وتتبع التواريخ تنسيق 'YYYY-MM-DD'.
  • 🧩 أعمدة متعددة: افصل كل مهمة بفاصلة لتحديث عدة حقول في عبارة واحدة.
  • 🔍 خطوة التحقق: قم بتشغيل عبارة WHERE كعبارة SELECT أولاً، ثم كررها بعد UPDATE لتأكيد القيم الجديدة.
  • 🛡️ وضع التحديث الآمن: MySQL يرفض برنامج Workbench أي تحديث لا يقوم شرط WHERE الخاص به بالتصفية على عمود رئيسي.

ما هو الاستعلام عن التحديث؟

استخدم قم MySQL يُستخدم الأمر UPDATE لتعديل صفوف في جدول. يمكن لاستعلام UPDATE تغيير حقل واحد أو عدة حقول في الوقت نفسه. كما يمكن استخدامه لتحديث MySQL جدول يحتوي على قيم مأخوذة من جدول آخر.

لماذا نستخدم استعلام التحديث في MySQL?

نادراً ما تبقى البيانات صحيحة إلى الأبد. تتغير أرقام هواتف الأعضاء، وتتغير الأسعار، وتنتقل الطلبات من حالة "معلقة" إلى حالة "تم الشحن". سيؤدي حذف الصف القديم وإدراج صف بديل إلى تعطيل المفتاح الأساسي وأي مراجع للمفاتيح الخارجية. تقوم عبارة التحديث (UPDATE) بتعديل الصف في مكانه، بحيث تبقى الهوية والعلاقات سليمة بعد التغيير.

تُعد استعلامات التحديث الأداة المناسبة في الحالات التالية:

  • القيمة خاطئة أو قديمة: قم بتصحيح اسم مكتوب بشكل خاطئ أو تحديث رقم اتصال دون المساس ببقية السجل.
  • يجب أن يتقدم الوضع إلى الأمام: قم بتغيير حالة الطلب من "معلق" إلى "تم شحنه" عن طريق إعادة كتابة عمود واحد.
  • تتغير عدة مجالات معًا: يمكن لبيان واحد أن يحدد اسمًا جديدًا وعنوانًا جديدًا في نفس العملية.
  • يلزم إجراء تصحيح شامل: تقوم عبارة WHERE التي تطابق العديد من الصفوف بتطبيق نفس التعديل عليها جميعًا في وقت واحد.

لأن عملية التحديث بدون شرط WHERE تعيد كتابة كل صف، فإن عامل التصفية يفصل التصحيح الروتيني عن الكتابة فوق البيانات عن طريق الخطأ.

MySQL تحديث صيغة الأمر

بعد تحديد الهدف، تأتي الخطوة التالية وهي صياغة الجملة. الشكل الأساسي لاستعلام التحديث في MySQL هو مبين أدناه.

UPDATE `table_name` SET `column_name` = 'new_value' [WHERE condition];

هنا:

  • تحديث `table_name` هو الأمر الذي يقول MySQL لتعديل البيانات في جدول.
  • SET `column_name` = 'new_value' يُحدد هذا الخيار أسماء وقيم الحقول التي ستتأثر باستعلام التحديث. عند تحديد القيم، يجب وضع أنواع البيانات النصية بين علامتي اقتباس مفردتين. أما القيم الرقمية فلا تحتاج إلى علامات اقتباس. يجب وضع قيم التاريخ بين علامتي اقتباس مفردتين وبالتنسيق 'YYYY-MM-DD'.
  • [أين الشرط] هذا الخيار اختياري، ويمكن استخدامه لتطبيق عامل تصفية يحد من عدد الصفوف المتأثرة باستعلام التحديث. تظهر قائمة الخيارات الكاملة في MySQL تحديث دليل البيان.

لنلقِ نظرة الآن على مثال عملي يقوم بتحديث البيانات في جدول الأعضاء.

التحديث في MySQL مثال

لنفترض أن الأعضاء الذين يحملون أرقام العضوية 1 و 2 لديهم التحديثات التالية التي يجب إجراؤها على سجلاتهم.

رقم العضوية التحديثات المطلوبة
1 غيّر رقم الاتصال من 999 إلى 0759253532
2 غيّر الاسم إلى جانيت سميث جونز، وحدث العنوان الفعلي إلى ميلروز 123

تحديث عمود واحد

نبدأ بالعضوية رقم 1. قبل إجراء أي تغيير، دعونا نسترجع هذا السجل.

SELECT * FROM `members` WHERE `membership_number` = 1;

تنفيذ البرنامج النصي أعلاه يعطينا النتائج التالية.

رقم العضوية الأسماء الكاملة جنس تاريخ الميلاد العنوان الفعلي العنوان البريدي رقم الاتصال البريد الإلكتروني
1 جانيت جونز أنثى 21-07-1980 الشارع الأول قطعة رقم 4 حقيبة خاصة 999 جانيتجونز@yagoo.cm

لنقم الآن بتحديث رقم جهة الاتصال باستخدام البرنامج النصي الموضح أدناه.

UPDATE `members` SET `contact_number` = '0759 253 532' WHERE `membership_number` = 1;

يؤدي تنفيذ البرنامج النصي أعلاه إلى تغيير رقم الاتصال من 999 إلى 0759 253 532 لرقم العضوية 1. إعادة تشغيل SELECT تؤكد القيمة الجديدة.

رقم العضوية الأسماء الكاملة جنس تاريخ الميلاد العنوان الفعلي العنوان البريدي رقم الاتصال البريد الإلكتروني
1 جانيت جونز أنثى 21-07-1980 الشارع الأول قطعة رقم 4 حقيبة خاصة 0759-253-532 جانيتجونز@yagoo.cm

تحديث أعمدة متعددة

يتطلب رقم العضوية 2 تغيير حقلين في آن واحد. هذا هو السجل قبل التحديث.

رقم العضوية الأسماء الكاملة جنس تاريخ الميلاد العنوان الفعلي العنوان البريدي رقم الاتصال البريد الإلكتروني
2 سميث جونز أنثى 23-06-1980 شارع المنتزه اغية اغية jj@fstreet.com

يقوم النص البرمجي التالي بتحديث كلا العمودين في عبارة واحدة. لاحظ الفاصلة التي تفصل بين عمليتي التعيين.

UPDATE `members` SET `full_names` = 'Janet Smith Jones', `physical_address` = 'Melrose 123' WHERE `membership_number` = 2;

يؤدي تنفيذ البرنامج النصي أعلاه إلى تحديث الأسماء الكاملة للعضو رقم 2 إلى جانيت سميث جونز والعنوان الفعلي إلى ميلروز 123.

رقم العضوية الأسماء الكاملة جنس تاريخ الميلاد العنوان الفعلي العنوان البريدي رقم الاتصال البريد الإلكتروني
2 جانيت سميث جونز أنثى 23-06-1980 ميلروز 123 اغية اغية jj@fstreet.com

💡 نصيحة: في "حيث الشرطية"" هو ما يحد من عدد الصفوف المتأثرة باستعلام التحديث. إذا حذفته، فسيتم إعادة كتابة كل صف في الجدول.

الأسئلة الشائعة

MySQL تُرجع الدالة عدد "الصفوف المطابقة" وعدد "الصفوف المتغيرة". يُظهر عدد "الصفوف المطابقة" عدد الصفوف التي تم تحديدها بواسطة شرط WHERE، بينما يستثني عدد "الصفوف المتغيرة" الصفوف التي كانت قيمتها الجديدة مطابقة للقيمة القديمة.

نعم. ادمج التحديث مع الانضمام ويُشار إلى الجدول الثاني في عبارة SET. ويحدد شرط الربط أي صف من صفوف المصدر يُوفر القيمة الجديدة لكل صف من صفوف الهدف.

قم بتضمينها في معاملة. استخدم الأمر START TRANSACTION متبوعًا بالأمر ROLLBACK لاستعادة القيم القديمة. بمجرد تثبيت التغيير، لا يمكن استعادة البيانات السابقة إلا من خلال نسخة احتياطية، لذا اختبر شرط WHERE باستخدام SELECT أولًا.

نعم. تقوم مساعدات الذكاء الاصطناعي بتحويل التغيير الموصوف إلى صيغة UPDATE واقتراح شرط WHERE. زوّد النموذج ببنية جدولك، ثم تحقق من عامل التصفية باستخدام عبارة SELECT قبل تشغيل الاستعلام المُنشأ.

لا يستطيع نموذج الذكاء الاصطناعي رؤية صفوفك الحية، لذا فإن عبارة WHERE خاطئة قليلاً يمكن أن تعيد كتابة آلاف السجلات بصمت. Revراجع كل عبارة تم إنشاؤها، وقم بتشغيلها على نسخة تجريبية، واحتفظ بنسخة احتياطية حديثة.

تلخيص هذه التدوينة بـ: