SQLأمر تحديث البيانات المخزنة في الجدول
- الأمر
UPDATE
- تجهيز قاعدة البيانات التي سنطبق عليها
- أمثلة حول تحديث بيانات الجدول
الأمر UPDATE
الأمر UPDATE
يستخدم لتحديث كل الحقول الموجودة تحت عمود محدد في الجدول أو لتحديث حقول محددة في العمود.
عند التعامل مع أمر التحديث عليك أن تكون حذر للغاية حتى لا تقوم بتحديث البيانات الخطأ لأنك لا تستطيع إرجاع القيم السابقة التي قمت بتغييرها.
طريقة استخدامه
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
- مكان الكلمة
table_name
نضع إسم الجدول الذي يحتوي على الحقول التي ننوي تحديث قيمها. - بعد الكلمة
SET
نضع إسم كل عمود نريد تحديث قيم الحقول الموجودة تحته و القيم التي نريد وضعها بدلاً منها. - مكان الكلمة
condition
يمكننا وضع شرط لنحدد أية أسطر نريد تحديث القيم الموضوعة فيه في حال لم نكن نريد تحديث الحقول في جميع الأسطر.
تجهيز قاعدة البيانات التي سنطبق عليها
قم بتنفيذ الإستعلام التالي حتى تنشئ قاعدة بيانات جديدة إسمها harmash
و تنشئ فيها جدول إسمه users
يحتوي على بيانات 10 مستخدمين.
مثال
-- سيتم حذفها harmash في حال كان يوجد بالأساس قاعدة بيانات إسمها DROP DATABASE IF EXISTS harmash; -- harmash هنا قمنا بإنشاء قاعدة بيانات جديدة إسمها CREATE DATABASE harmash; -- harmash هنا قمنا بتحديد أن أي إستعلام جديد سيتم تنفيذه على قاعدة البيانات USE harmash; -- يتألف من 4 أعمدة users هنا قمنا بإنشاء جدول جديد إسمه -- لأننا قمنا بتحديدها قبل إستدعاء هذا الأمر harmash سيتم إنشاء هذا الجدول بداخل قاعدة البيانات CREATE TABLE users ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, first_name VARCHAR(50), last_name VARCHAR(50), country VARCHAR(50) ); -- هنا قمنا بإضافة 10 أسطر في الجدول, أي أضفنا معلومات 10 مستخدمين -- لاحظ أننا لم نحدد أسماء الأعمدة التي سنضع فيها البيانات لأننا قمنا بملئ جميع المعلومات -- في البداية هو حتى يكون عدد القيم الموضوعة يساوي عدد أعمدة الجدول null سبب وضع الكلمة -- ستقوم قاعدة البيانات بوضع رقم تعرفة مختلف لكل سطر null مكان الكلمة INSERT INTO users VALUES (null, "Rami", "Masri", "Lebanon"); INSERT INTO users VALUES (null, "Ahmad", "Naji", "Syria"); INSERT INTO users VALUES (null, "Hanan", "Mostafa", "KSA"); INSERT INTO users VALUES (null, "Saly", "Harmush", "Lebanon"); INSERT INTO users VALUES (null, "Samir", "Saleh", "Lebanon"); INSERT INTO users VALUES (null, "Hamad", "Akel", "Syria"); INSERT INTO users VALUES (null, "Abdullah", "Helmi", "Egypt"); INSERT INTO users VALUES (null, "Rashed", "Masri", "Oman"); INSERT INTO users VALUES (null, "Majed", "Alali", "Yaman"); INSERT INTO users VALUES (null, "Rayan", "Kasabi", "KSA");
بعد تنفيذ الإستعلام السابق في phpMyAdmin سيتم إنشاء قاعدة البيانات harmash
و إنشاء الجدول users
بداخلها.
قم بالنقر على إسم قاعدة البيانات harmash
من القائمة اليسرى حتى تبدأ بالتعامل معها و تطبيق ما ستتعلمه في هذا الدرس.
البيانات التي قمنا بإضافتها بشكل إفتراضي في الجدول users
.
id | first_name | last_name | country |
---|---|---|---|
1 | Rami | Masri | Lebanon |
2 | Ahmad | Naji | Syria |
3 | Hanan | Mostafa | KSA |
4 | Saly | Harmush | Lebanon |
5 | Samir | Saleh | Lebanon |
6 | Hamad | Akel | Syria |
7 | Abdullah | Helmi | Egypt |
8 | Rashed | Masri | Oman |
9 | Majed | Alali | Yaman |
10 | Rayan | Kasabi | KSA |
أمثلة حول تحديث بيانات الجدول
الإستعلام التالي يقوم بتحديث قيمة الحقل first_name
للمستخدم الذي يملك رقم تعرفة id
يساوي 1
إلى القيمة 'Ziad'
.
المثال الأول
UPDATE users -- users هنا قمنا بتحديد أننا نريد تحديث قيم موجودة في الجدول SET first_name = 'Ziad' -- 'Ziad' إلى first_name و من ثم تحديد أننا نريد تغيير قيمة الحقل WHERE id = 1; -- 1 يساوي id لأي سطر يملك رقم SELECT * FROM users; -- لمعرفة التغيرات الجديدة users هنا قمنا بعرض جميع البيانات الموجودة في الجدول
النتيجة
id | first_name | last_name | country |
---|---|---|---|
1 | Ziad | Masri | Lebanon |
2 | Ahmad | Naji | Syria |
3 | Hanan | Mostafa | KSA |
4 | Saly | Harmush | Lebanon |
5 | Samir | Saleh | Lebanon |
6 | Hamad | Akel | Syria |
7 | Abdullah | Helmi | Egypt |
8 | Rashed | Masri | Oman |
9 | Majed | Alali | Yaman |
10 | Rayan | Kasabi | KSA |
نلاحظ أن أول سطر و الذي كان يملك رقم id
يساوي 1
تم تحديث قيمة الحقل first_name
فيه و أصبحت قيمته 'Ziad'
.
دائماً إعتمد على رقم التعرفة إذا أردت تعديل بيانات سطر واحد في الجدول لأنه يستحيل وجود سطر آخر يملك نفس الرقم. و هكذا ستضمن أن يتم تحدث بيانات سطر واحد في الجدول.
الإستعلام التالي يقوم بتحديث قيمة الحقلين first_name
و last_name
للمستخدم الذي يملك رقم تعرفة id
يساوي 3
إلى القيمتين 'Maria'
و 'Chaar'
.
المثال الثاني
UPDATE users -- users هنا قمنا بتحديد أننا نريد تحديث قيم موجودة في الجدول SET first_name = 'Maria', last_name = 'Chaar' -- 'Chaar' إلى last_name و الحقل 'Maria' إلى first_name و من ثم تحديد أننا نريد تغيير قيمة الحقل WHERE id = 3; -- 3 يساوي id لأي سطر يملك رقم SELECT * FROM users; -- لمعرفة التغيرات الجديدة users هنا قمنا بعرض جميع البيانات الموجودة في الجدول
النتيجة
id | first_name | last_name | country |
---|---|---|---|
1 | Ziad | Masri | Lebanon |
2 | Ahmad | Naji | Syria |
3 | Maria | Chaar | KSA |
4 | Saly | Harmush | Lebanon |
5 | Samir | Saleh | Lebanon |
6 | Hamad | Akel | Syria |
7 | Abdullah | Helmi | Egypt |
8 | Rashed | Masri | Oman |
9 | Majed | Alali | Yaman |
10 | Rayan | Kasabi | KSA |
نلاحظ أن ثالث سطر و الذي كان يملك رقم id
يساوي 3
تم تحديث قيمة الحقلين first_name
و last_name
فيه إلى القيمتين 'Maria'
و 'Chaar'
.
الإستعلام التالي يقوم بتحديث قيمة كل حقل في العمود country
إلى 'Canada'
في حال كانت تساوي 'Lebanon'
.
المثال الثالث
UPDATE users -- users هنا قمنا بتحديد أننا نريد تحديث قيم موجودة في الجدول SET country = 'Canada' -- 'Canada' إلى country و من ثم تحديد أننا نريد تغيير قيمة الحقل WHERE country = 'Lebanon'; -- "Lebanon' يساوي country لأي سطر يملك إسم SELECT * FROM users; -- لمعرفة التغيرات الجديدة users هنا قمنا بعرض جميع البيانات الموجودة في الجدول
النتيجة
id | first_name | last_name | country |
---|---|---|---|
1 | Ziad | Masri | Canada |
2 | Ahmad | Naji | Syria |
3 | Maria | Chaar | KSA |
4 | Saly | Harmush | Canada |
5 | Samir | Saleh | Canada |
6 | Hamad | Akel | Syria |
7 | Abdullah | Helmi | Egypt |
8 | Rashed | Masri | Oman |
9 | Majed | Alali | Yaman |
10 | Rayan | Kasabi | KSA |
نلاحظ أنه تم تغيير قيمة كل سطر كان يملك country
يساوي 'Lebanon'
إلى 'Canada'
.
الإستعلام التالي يقوم بتحديث قيمة الحقل country
لكل الأسطر الموجودة في الجدول users
إلى القيمة 'Palestine'
لأنه لا يوجد شرط يحدد لأي أسطر سيتم تغييرها.
المثال الرابع
UPDATE users -- users هنا قمنا بتحديد أننا نريد تحديث قيم موجودة في الجدول SET country = 'Palestine'; -- 'Palestine' إلى country و من ثم تحديد أننا نريد تغيير قيمة الحقل SELECT * FROM users; -- لمعرفة التغيرات الجديدة users هنا قمنا بعرض جميع البيانات الموجودة في الجدول
النتيجة
id | first_name | last_name | country |
---|---|---|---|
1 | Ziad | Masri | Palestine |
2 | Ahmad | Naji | Palestine |
3 | Maria | Chaar | Palestine |
4 | Saly | Harmush | Palestine |
5 | Samir | Saleh | Palestine |
6 | Hamad | Akel | Palestine |
7 | Abdullah | Helmi | Palestine |
8 | Rashed | Masri | Palestine |
9 | Majed | Alali | Palestine |
10 | Rayan | Kasabi | Palestine |
نلاحظ أنه تم تحديث قيمة الحقل country
لكل الأسطر الموجودة في الجدول users
إلى القيمة 'Palestine'
.