PostgreSQL حذف الصفوف من التحديد
⚡ ملخص ذكي
PostgreSQL تقوم عملية الحذف (DELETE) بإزالة صف واحد أو أكثر من الجدول، وربطها بعبارة WHERE يستهدف فقط السجلات التي تطابق شرطًا معينًا، بينما يؤدي حذف عبارة WHERE إلى مسح كل صف في الجدول.

حذف الاستعلام في PostgreSQL
استخدم بيان الحذف in PostgreSQL تُستخدم هذه الأداة لحذف سجل واحد أو أكثر من جدول. لحذف صفوف محددة فقط من جدول، PostgreSQL يسمح لك بدمج عبارة DELETE مع عبارة WHERE؛ وإلا فإنه يحذف جميع السجلات في الجدول.
PostgreSQL حذف صيغة الاستعلام
يمكن تعريف عبارة الحذف باستخدام الصيغة التالية:
[ WITH [ RECURSIVE ] with-query [, ...] ] DELETE FROM [ ONLY ] table-name [ * ] [ [ AS ] alias ] [ USING using-list ] [ WHERE condition(s) | WHERE CURRENT OF cursor-name] [ RETURNING * | output-expression [ [ AS ] output-name] [, ...] ]
المعاملات
تتوفر المعايير التالية:
- مع الاستعلام: تسمح لك عبارة WITH بالإشارة إلى استعلام فرعي واحد أو أكثر بالاسم داخل استعلام DELETE.
- اسم الطاولة: اسم الجدول الذي سيتم حذف السجلات منه.
- الاسم المستعار: بديل لاسم الجدول المستهدف.
- قائمة المستخدمين: تعبيرات الجدول التي تسمح باستخدام الأعمدة من جداول أخرى في عبارة WHERE.
- شروط)هذا القسم اختياري. هذه هي الشروط التي يجب استيفاؤها لحذف السجلات. في حال عدم تحديد هذا القسم، سيتم حذف جميع سجلات اسم الجدول.
- اسم المؤشرالمؤشر الذي سيتم استخدامه في شرط WHERE CURRENT OF. سيتم حذف آخر صف تم جلبه بواسطة هذا المؤشر.
- تعبير الإخراج: التعبير الذي سيتم معالجته وإعادته بواسطة عبارة DELETE بعد حذف كل صف.
- اسم الإخراج: الاسم الذي سيتم استخدامه للعمود الذي تم إرجاعه.
لاحظ أنه بما أن عبارة DELETE تحذف الصف بأكمله، فلا داعي لتحديد أسماء الأعمدة.
PostgreSQL حذف الاستعلام بشرط واحد
يمكن استخدام عبارة DELETE مع شرط واحد، يتم تحديده باستخدام عبارة WHERE. لنفترض جدول الأسعار الذي يحتوي على البيانات التالية:
السعر:
دعونا نحذف السجل بمعرف 4:
DELETE FROM Price WHERE id = 4;
يحذف الأمر أعلاه السجلات التي يكون فيها المعرّف 4. دعونا نتأكد مما إذا كان الحذف قد تم بنجاح:
تم حذف الصف ذو المعرف 4.
حذف الاستعلام بشرطين
استخدم PostgreSQL يمكن أن تأخذ عبارة DELETE شرطين. يجب ربط الشرطين باستخدام عامل الربط AND. سنستخدم الجدول التالي:
السعر:
خذ بعين الاعتبار المثال الموضح أدناه:
DELETE FROM Price WHERE id = 3 AND price = 300;
في الأمر أعلاه، نقوم بحذف الصف الذي يكون فيه المعرّف 3 والسعر 300. يمكننا الآن الاستعلام عن الجدول:
SELECT * FROM Price;
هذا يعيد ما يلي:
تم حذف السجل ذو المعرف 3 والسعر 300.
PostgreSQL حذف الاستعلام باستخدام شرط EXISTS
مع المشرقية في بعض الحالات، يمكنك جعل عملية الحذف أكثر تعقيدًا. قد تكون هناك حاجة أحيانًا لحذف سجلات من جدول ما بناءً على سجلات من جدول آخر.
لأن عبارة FROM لا تسمح لك بعرض سجلات من أكثر من جدول واحد عند حذف سجل، تصبح عبارة EXISTS مفيدة للغاية. لدينا الجدولان التاليان:
كتاب:
السعر:
يمكننا بعد ذلك تشغيل الاستعلام التالي:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
يقوم الأمر بحذف الصفوف من جدول الكتب التي لها معرف مطابق في جدول الأسعار بسعر أقل من 250.
أصبح جدول الكتب الآن على النحو التالي:
تم حذف السجل ذو المعرف 1.
كيفية حذف صف في PostgreSQL باستخدام pgAdmin
يمكن أيضًا تشغيل استعلامات الحذف نفسها بصريًا من خلال واجهة pgAdmin، باتباع الخطوات التالية:
بشرط واحد
الخطوة 1) قم بتسجيل الدخول إلى حسابك في pgAdmin. افتح pgAdmin وقم بتسجيل الدخول إلى حسابك باستخدام بيانات اعتمادك.
الخطوة 2) أنشئ قاعدة بيانات تجريبية.
- من شريط التنقل الموجود على اليسار، انقر فوق قواعد البيانات.
- انقر فوق العرض التوضيحي.
الخطوة 3) اكتب الاستعلام أدناه في محرر الاستعلام:
DELETE FROM Price WHERE id = 4;
الخطوة 4) انقر فوق الزر "تنفيذ".
الخطوة 5) دعونا نتحقق مما إذا تم حذف الصف:
بشرطين
الخطوة 1) قم بتسجيل الدخول إلى حساب pgAdmin الخاص بك.
الخطوة 2)
- من شريط التنقل الموجود على اليسار، انقر فوق قواعد البيانات.
- انقر فوق العرض التوضيحي.
الخطوة 3) اكتب الاستعلام في محرر الاستعلام:
DELETE FROM Price WHERE id = 3 AND price = 300;
الخطوة 4) انقر فوق الزر "تنفيذ".
الخطوة 5) دعونا نتحقق مما إذا كان الحذف ناجحًا:
استخدام حالة موجود
الخطوة 1) قم بتسجيل الدخول إلى حساب pgAdmin الخاص بك.
الخطوة 2)
- من شريط التنقل الموجود على اليسار، انقر فوق قواعد البيانات.
- انقر فوق العرض التوضيحي.
الخطوة 3) اكتب الاستعلام في محرر الاستعلام:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
الخطوة 4) انقر فوق الزر "تنفيذ".
الخطوة 5) دعونا نتحقق مما إذا كان الحذف ناجحًا:
قم بتنزيل قاعدة البيانات المستخدمة في هذا البرنامج التعليمي
















