PostgreSQL موجود مع تحديد Operaتور (مثال)
⚡ ملخص ذكي
PostgreSQL EXISTS هو عامل منطقي يختبر ما إذا كان الاستعلام الفرعي المرتبط يُرجع أي صف، مما يسمح لعبارات SELECT وINSERT وUPDATE وDELETE بتصفية البيانات حسب وجود أو عدم وجود سجلات مطابقة بكفاءة.
ما هو موجود في PostgreSQL?
استخدم PostgreSQL المشرقية يختبر عامل التشغيل EXISTS وجود صف أو أكثر في استعلام فرعي. وهذا يعني أنه يُستخدم مع استعلام فرعي. ويُقال إن عامل التشغيل EXISTS قد تحقق عند العثور على صف واحد على الأقل في الاستعلام الفرعي. يمكنك استخدام هذه العملية مع عبارات SELECT وUPDATE وINSERT وDELETE.
PostgreSQL صيغة استعلام EXISTS
هنا هو بناء الجملة ل PostgreSQL بيان موجود:
WHERE EXISTS (subquery);
يوضح بناء الجملة أعلاه أن عامل EXISTS يأخذ وسيطة، وهي عبارة عن استعلام فرعي. الاستعلام الفرعي هو ببساطة اختيار البيان يجب أن يبدأ بـ SELECT * بدلاً من قائمة أسماء الأعمدة أو التعبيرات.
PostgreSQL يوجد باستخدام عبارة SELECT
لنرى كيف نستخدم عبارة SELECT مع عامل التشغيل EXISTS. لدينا الجداول التالية:
كتاب:
السعر:
قم بتشغيل العبارة التالية:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
هذا يعيد ما يلي:
يجب أن يقوم الأمر أعلاه بإرجاع كافة السجلات الموجودة في جدول الكتاب الذي يتطابق معرفه مع معرف أي سجلات بواسطة الاستعلام الفرعي. تمت مطابقة معرف واحد فقط. وبالتالي، تم إرجاع سجل واحد فقط.
PostgreSQL يوجد باستخدام عبارة INSERT
يمكننا استخدام عامل EXISTS في إدراج بيانلدينا الجداول الثلاثة التالية:
كتاب:
السعر:
السعر2:
ومن ثم يمكننا تنفيذ العبارة التالية:
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
جدول الأسعار الآن على النحو التالي:
تمت مطابقة الصف ذو المعرف 5 في الجدول المسمى Price2. ثم تم إدراج هذا السجل في جدول الأسعار.
PostgreSQL بيان التحديث الموجود
يمكننا استخدام عامل EXISTS في بيان UPDATE.
قم بتشغيل الاستعلام التالي:
UPDATE Price SET price = (SELECT price FROM Price2 WHERE Price2.id = Price.id) WHERE EXISTS (SELECT id, price FROM Price2 WHERE Price2.id = Price.id);
نقوم بتحديث عمود السعر في جدول الأسعار. هدفنا هو أن تكون أسعار العناصر التي تشترك في المعرف هي نفسها. تمت مطابقة صف واحد فقط، وهو 5.
ولكن بما أن الأسعار متساوية، أي 205، لم يتم إجراء أي تحديث. ولو كان هناك اختلاف لكان قد تم التحديث.
PostgreSQL يوجد مع عبارة الحذف
A PostgreSQL يمكن لبيان DELETE استخدام عامل EXISTS. فيما يلي مثال:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
جدول الأسعار الآن على النحو التالي:
تم حذف الصف ذو المعرف 5.
PostgreSQL بيان EXISTS باستخدام pgAdmin
بالإضافة إلى واجهة SQL، يمكن تنفيذ استعلامات EXISTS نفسها بصريًا من خلال واجهة pgAdmin. والآن، دعونا نرى كيف يمكن تنفيذ هذه الإجراءات باستخدام pgAdmin:
باستخدام عبارة SELECT
فيما يلي خطوات استخدام استعلام EXISTS في PostgreSQL باستخدام عبارة SELECT باستخدام pgAdmin:
الخطوة 1) قم بتسجيل الدخول إلى حسابك في pgAdmin. افتح pgAdmin وقم بتسجيل الدخول إلى حسابك باستخدام بيانات اعتمادك.
الخطوة 2) أنشئ قاعدة بيانات تجريبية.
- من شريط التنقل الموجود على اليسار، انقر فوق قواعد البيانات.
- انقر فوق العرض التوضيحي.
الخطوة 3) اكتب الاستعلام أدناه في محرر الاستعلام:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
الخطوة 4) انقر فوق الزر "تنفيذ".
ينبغي أن يعود ما يلي:
مع بيان INSERT
لإنجاز الأمر نفسه من خلال pgAdmin، قم بما يلي:
الخطوة 1) قم بتسجيل الدخول إلى حساب pgAdmin الخاص بك.
الخطوة 2)
- من شريط التنقل الموجود على اليسار، انقر فوق قواعد البيانات.
- انقر فوق العرض التوضيحي.
الخطوة 3) اكتب الاستعلام في محرر الاستعلام:
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
الخطوة 4) انقر فوق الزر "تنفيذ".
يجب أن يكون جدول الأسعار الآن كما يلي:
مع بيان التحديث
لإنجاز الأمر نفسه من خلال pgAdmin، قم بما يلي:
الخطوة 1) قم بتسجيل الدخول إلى حساب pgAdmin الخاص بك.
الخطوة 2)
- من شريط التنقل الموجود على اليسار، انقر فوق قواعد البيانات.
- انقر فوق العرض التوضيحي.
الخطوة 3) اكتب الاستعلام في محرر الاستعلام:
UPDATE Price SET price = (SELECT price FROM Price2 WHERE Price2.id = Price.id) WHERE EXISTS (SELECT id, price FROM Price2 WHERE Price2.id = Price.id);
الخطوة 4) انقر فوق الزر "تنفيذ".
يجب أن يكون جدول الأسعار الآن كما يلي:
مع بيان الحذف
لإنجاز الأمر نفسه من خلال pgAdmin، قم بما يلي:
الخطوة 1) قم بتسجيل الدخول إلى حساب pgAdmin الخاص بك.
الخطوة 2)
- من شريط التنقل الموجود على اليسار، انقر فوق قواعد البيانات.
- انقر فوق العرض التوضيحي.
الخطوة 3) اكتب الاستعلام في محرر الاستعلام:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
الخطوة 4) انقر فوق الزر "تنفيذ".
يجب أن يكون جدول الأسعار الآن كما يلي:
قم بتنزيل قاعدة البيانات المستخدمة في هذا البرنامج التعليمي






















