MySQL تحديث الاستعلام مع المثال
⚡ ملخص ذكي
MySQL تُعدّل استعلامات التحديث (UPDATE) الصفوف الموجودة في جدول، مُغيّرةً حقلاً واحداً أو عدة حقول في عبارة واحدة. يشرح هذا المورد صيغة استعلام التحديث، وتصفية 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 |
💡 نصيحة: في "حيث الشرطية"" هو ما يحد من عدد الصفوف المتأثرة باستعلام التحديث. إذا حذفته، فسيتم إعادة كتابة كل صف في الجدول.
