في لغة SQL، تُستخدم خاصية UPDATE
لتعديل البيانات الموجودة في جدول. تُمكنك من تغيير قيم عمود واحد أو أكثر في صف واحد أو أكثر بناءً على شروط مُحددة.
الصيغة الأساسية لعبارة UPDATE
:
UPDATE table_nameSET column1 = value1, column2 = value2, ...WHERE condition;
UPDATE
: الكلمة المفتاحية التي تُشير إلى أننا سنُجري عملية تحديث.table_name
: اسم الجدول الذي نريد تحديث البيانات فيه.SET
: الكلمة المفتاحية التي تُستخدم لتحديد الأعمدة التي سيتم تحديثها والقيم الجديدة لها.column1 = value1, column2 = value2, ...
: قائمة بالأعمدة وقيمها الجديدة. يُمكن تحديث أكثر من عمود في نفس العبارة بفصلها بفواصل.WHERE condition
: شرط اختياري يُحدد الصفوف التي سيتم تحديثها. إذا لم يتم تحديد شرطWHERE
، سيتم تحديث جميع الصفوف في الجدول.
شرح العناصر:
table_name
: يجب أن يكون اسم الجدول موجودًا في قاعدة البيانات.column1 = value1
: يُحدد اسم العمود المراد تحديثه والقيمة الجديدة التي سيتم وضعها فيه. يُمكن أن تكون القيمة ثابتة (مثلname = 'John'
) أو تعبيرًا (مثلsalary = salary * 1.1
لزيادة الراتب بنسبة 10%).WHERE condition
: يُستخدم لتحديد الصفوف التي سيتم تحديثها. يُمكن استخدام عوامل المقارنة (=
,!=
,>
,<
,>=
,<=
)، والعوامل المنطقية (AND
,OR
,NOT
)، وعبارات أخرى في الشرط.
أمثلة:
- تحديث قيمة عمود واحد في صف واحد:
لنفترض أن لدينا جدولًا اسمه employees
يحتوي على الأعمدة id
و name
و salary
. لتحديث راتب الموظف الذي لديه id = 1
إلى 5000، نستخدم العبارة التالية:
UPDATE employeesSET salary = 5000WHERE id = 1;
- تحديث قيم عدة أعمدة في صف واحد:
لتحديث اسم وراتب الموظف الذي لديه id = 2
:
UPDATE employeesSET name = 'Jane Doe', salary = 6000WHERE id = 2;
- تحديث قيم أعمدة في عدة صفوف:
لتحديث رواتب جميع الموظفين الذين يعملون في قسم معين (لنفترض أن لدينا عمودًا اسمه department
):
UPDATE employeesSET salary = salary * 1.05WHERE department = 'Sales'; -- زيادة الرواتب بنسبة 5% لقسم المبيعات
- تحديث جميع الصفوف في الجدول (بدون شرط
WHERE
):
لتحديث قيمة عمود معين في جميع الصفوف (يجب استخدامه بحذر):
UPDATE employeesSET active = 1; -- جعل جميع الموظفين نشطين
ملاحظات مهمة:
- استخدام
WHERE
بحذر: من الضروري استخدام شرطWHERE
لتحديد الصفوف التي سيتم تحديثها. إذا لم يتم استخدامWHERE
، سيتم تحديث جميع الصفوف في الجدول، وهو ما قد يكون غير مرغوب فيه. - التعامل مع القيم النصية: يجب وضع القيم النصية بين علامتي اقتباس مفردة (').
- التعامل مع القيم الفارغة (NULL): لتحديث قيمة عمود إلى
NULL
، استخدم الكلمة المفتاحيةNULL
مباشرةً (مثلSET column1 = NULL
). - التحقق من التغييرات: قبل تنفيذ عبارة
UPDATE
، يُفضل إجراء استعلامSELECT
مع نفس شرطWHERE
للتأكد من أنك ستُحدث الصفوف المطلوبة.
مثال كامل:
لنفترض أن لدينا جدول products
بالهيكل التالي:
| id | name | price | quantity | | -- | ----------- | ----- | -------- | | 1 | Laptop | 1200 | 10 | | 2 | Mouse | 25 | 50 | | 3 | Keyboard | 75 | 20 |
لتحديث سعر اللابتوب (id=1) إلى 1300 وزيادة كمية الكيبورد (id=3) بمقدار 5:
UPDATE productsSET price = 1300WHERE id = 1;
UPDATE products
SET quantity = quantity + 5WHERE id = 3;
بعد تنفيذ هذه العبارات، سيصبح الجدول كالتالي:
| id | name | price | quantity | | -- | ----------- | ----- | -------- | | 1 | Laptop | 1300 | 10 | | 2 | Mouse | 25 | 50 | | 3 | Keyboard | 75 | 25 |
باختصار، تُعتبر عبارة UPDATE
أداة قوية لتعديل البيانات في قواعد البيانات SQL، ولكن يجب استخدامها بحذر مع شرط WHERE
لتجنب التغييرات غير المقصودة.