الأمر DELETE
الأمر DELETE يستخدم لحذف كل الأسطر الموجودة في الجدول أو لحذف أسطر محددة منه.
تنبيه: عند التعامل مع أمر الحذف عليك أن تكون حذر للغاية حتى لا تقوم بحذف البيانات الخطأ لأنك لا تستطيع إرجاع أي بيانات تقوم بحذفها.
الشكل العام لإستخدامه
DELETE FROM table_name
WHERE condition;
مكان الكلمة
table_nameنضع إسم الجدول الذي سنحذف سطر أو أكثر منه.مكان الكلمة
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 |
أمثلة حول حذف بيانات من الجدول
المثال الأول
الإستعلام التالي يحذف كل سطر يملك رقم التعرفة id يساوي 1 و من ثم يقوم بعرض جميع الأسطر المتبقية.
ملاحظة: بما أن رقم التعرفة هو رقم موحد حيث أنه يستحيل وجود سطر آخر يملك نفس رقم التعرفة, فالبطبع سيتم حذف سطر واحد فقط من الجدول.
الإستعلام
DELETE FROM users WHERE id = 1; -- 1 يساوي id أي سطر يملك رقم users إحذف من الجدول
SELECT * FROM users; -- users ثم أعرض جميع البيانات الموجودة في الجدول
سنحصل على النتيجة التالية عند تنفيذ الإستعلام.
نلاحظ أن أول سطر و الذي كان يملك رقم id يساوي 1 تم حذفه.
| id | first_name | last_name | country |
|---|---|---|---|
| 2 | Ahmad | Naji | Syria |
| 3 | Hanan | Mostafa | KSA |
| 6 | Hamad | Akel | Syria |
| 7 | Abdullah | Helmi | Egypt |
| 8 | Rashed | Masri | Oman |
| 9 | Majed | Alali | Yaman |
| 10 | Rayan | Kasabi | KSA |
المثال الثاني
الإستعلام التالي يحذف كل سطر يملك country يساوي Lebanon و من ثم يقوم بعرض جميع الأسطر المتبقية.
الإستعلام
DELETE FROM users WHERE country = 'Lebanon'; -- Lebanon يساوي country أي سطر يملك رقم users إحذف من الجدول
SELECT * FROM users; -- users ثم أعرض جميع البيانات الموجودة في الجدول
سنحصل على النتيجة التالية عند تنفيذ الإستعلام.
نلاحظ أنه تم حذف كل سطر كان يملك country يساوي Lebanon.
| id | first_name | last_name | country |
|---|---|---|---|
| 2 | Ahmad | Naji | Syria |
| 3 | Hanan | Mostafa | KSA |
| 6 | Hamad | Akel | Syria |
| 7 | Abdullah | Helmi | Egypt |
| 8 | Rashed | Masri | Oman |
| 9 | Majed | Alali | Yaman |
| 10 | Rayan | Kasabi | KSA |
المثال الثالث
الإستعلام التالي يحذف كل الأسطر الموجودة في الجدول لأنه لا يوجد شرط للحذف.
الإستعلام
DELETE FROM users; -- users إحذف كل الأسطر الموجودة في الجدول
SELECT * FROM users; -- users ثم أعرض جميع البيانات الموجودة في الجدول
سنحصل على النتيجة التالية عند تنفيذ الإستعلام.
نلاحظ أنه قد تم حذف كل أسطر الجدول users.
| id | first_name | last_name | country |
|---|---|---|---|
الأمر 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'.
ملاحظة: بما أن رقم التعرفة هو رقم موحد حيث أنه يستحيل وجود سطر آخر يملك نفس رقم التعرفة, فالبطبع سيتم تحديث الحقل first_name لسطر واحد فقط من الجدول.
الإستعلام
UPDATE users -- users هنا قمنا بتحديد أننا نريد تحديث قيم موجودة في الجدول
SET first_name = 'Ziad' -- 'Ziad' إلى first_name و من ثم تحديد أننا نريد تغيير قيمة الحقل
WHERE id = 1; -- 1 يساوي id لأي سطر يملك رقم
SELECT * FROM users; -- لمعرفة التغيرات الجديدة users هنا قمنا بعرض جميع البيانات الموجودة في الجدول
سنحصل على النتيجة التالية عند تنفيذ الإستعلام.
نلاحظ أن أول سطر و الذي كان يملك رقم id يساوي 1 تم تحديث قيمة الحقل first_name فيه و أصبحت قيمته 'Ziad'.
| 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 |
المثال الثاني
الإستعلام التالي يقوم بتحديث قيمة الحقلين 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 يساوي 3 تم تحديث قيمة الحقلين first_name و last_name فيه إلى القيمتين 'Maria' و 'Chaar'.
| 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 |
المثال الثالث
الإستعلام التالي يقوم بتحديث قيمة كل حقل في العامود country إلى 'Canada' في حال كانت تساوي 'Lebanon'.
الإستعلام
UPDATE users -- users هنا قمنا بتحديد أننا نريد تحديث قيم موجودة في الجدول
SET country = 'Canada' -- 'Canada' إلى country و من ثم تحديد أننا نريد تغيير قيمة الحقل
WHERE country = 'Lebanon'; -- "Lebanon' يساوي country لأي سطر يملك إسم
SELECT * FROM users; -- لمعرفة التغيرات الجديدة users هنا قمنا بعرض جميع البيانات الموجودة في الجدول
سنحصل على النتيجة التالية عند تنفيذ الإستعلام.
نلاحظ أنه تم تغيير قيمة كل سطر كان يملك country يساوي 'Lebanon' إلى 'Canada'.
| 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 لكل الأسطر الموجودة في الجدول users إلى القيمة 'Palestine' لأنه لا يوجد شرط يحدد لأي أسطر سيتم تغييرها.
الإستعلام
UPDATE users -- users هنا قمنا بتحديد أننا نريد تحديث قيم موجودة في الجدول
SET country = 'Palestine'; -- 'Palestine' إلى country و من ثم تحديد أننا نريد تغيير قيمة الحقل
SELECT * FROM users; -- لمعرفة التغيرات الجديدة users هنا قمنا بعرض جميع البيانات الموجودة في الجدول
سنحصل على النتيجة التالية عند تنفيذ الإستعلام.
نلاحظ أنه تم تحديث قيمة الحقل country لكل الأسطر الموجودة في الجدول users إلى القيمة 'Palestine'.
| 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 |