وظيفة PostgreSQL لإرجاع جدول

Wzyft Postgresql Larja Jdwl



في بعض الأحيان، قد ترغب في إنشاء دالة تُرجع جدولاً في قاعدة بيانات PostgreSQL لتغليف مجموعة النتائج. من الممكن إنشاء وظيفة 'pgSQL' التي تتيح لك استرداد السجلات واستخدام استعلام إرجاع يعرض مجموعة النتائج كجدول. يرشدك هذا المنشور إلى كيفية إنشاء وظيفة PostgreSQL التي تُرجع جدولاً.

كيفية إنشاء وظيفة PostgreSQL لإرجاع جدول

عندما يكون لديك قاعدة بيانات PostgreSQL وتريد التحقق من السجلات من الجدول، فإن استخدام دالة بشكل دوري هو الطريقة الأكثر ملاءمة، خاصة دالة PostgreSQL التي تُرجع جدولاً في مجموعة النتائج الخاصة بها. بهذه الطريقة، يمكنك تغليف مجموعة النتائج الخاصة بك، ويساعد استخدام هذا الأسلوب في تنظيم التعليمات البرمجية بشكل أفضل.

ما يلي هو بناء الجملة لإنشاء وظيفة PostgreSQL التي تقوم بإرجاع جدول:







إنشاء أو استبدال الدالة function_name(parameter_list)

جدول الإرجاع (column_list)

كما $$

بدء الاستعلام عن الإرجاع(query);

نهاية؛

$$ اللغة plpgsql

الشيء الجيد في إنشاء مثل هذه الوظائف هو أنها تسمح لك بتحديد 'قائمة_أعمدة' متنوعة بدلاً من إرجاع قيمة واحدة من الجدول الخاص بك. دعونا نعطي مثالين لمساعدتنا في فهم الخطوات التي يجب اتباعها.



المثال 1: العمل بمدخل واحد

عند إنشاء دالة تقوم بإرجاع جدول، يجب عليك توفير الوسيطة لاستخدامها مع استعلام الإرجاع. يمكن أن تكون الوسيطة نمطًا أو إدخالاً محددًا. يقدم هذا المثال حالة نستخدم فيها مدخلاً واحدًا كوسيطة.



فيما يلي جدول 'الطالب' الذي سنستخدمه في استعلامنا:





في الصورة التالية، قمنا بإنشاء دالة باسم 'get_student' والتي تأخذ INT كوسيطة. في قسم RETURNS TABLE، نعيد جدولًا يحتوي على أربعة أعمدة: 'student_id' و'student_name' و'student_faculty' و'current_status'.



تحصل كل هذه الأعمدة على قيمها من استعلام الإرجاع الذي نحدده. لاحظ أن استعلام الإرجاع يستخدم عبارة WHERE باستخدام قائمة المعلمات التي نحددها عند إنشاء الوظيفة.

بمجرد إنشاء الوظيفة، سوف تحصل على مخرجات مشابهة لتلك التي حصلنا عليها سابقًا والتي تؤكد أن وظيفة PostgreSQL الخاصة بك قد تم إنشاؤها بنجاح. للتحقق من ذلك بشكل أكبر، قم بتشغيل الأمر التالي لسرد الوظائف المتاحة:

\df *get_student();

نضيف العلامات النجمية لمطابقة أي دالة لها الاسم المحدد. يُظهر الناتج أن لدينا وظيفة PostgreSQL في قاعدة بياناتنا.

الخطوة الأخيرة هي اختبار الوظيفة التي تم إنشاؤها. قم بتشغيل عبارة 'select' لاستدعاء الوظيفة. ثم قم بإضافة الوسيطة المتوقعة. في حالتنا، المعلمة من النوع INT. وبالتالي، فإننا نضيف 1 كوسيطة لدينا لاسترداد السجلات المطابقة له وإرجاع جدول كما هو موضح في ما يلي:

المثال 2: العمل مع نمط الإدخال

عندما تكون غير متأكد من القيمة التي سيتم استخدامها مع استعلام الإرجاع، يمكنك استخدام عامل التشغيل ILIKE لمطابقة نمط معين. على سبيل المثال، إذا كان لديك اسمًا ولا تعرف سوى قسم من السلسلة، فإن عامل التشغيل ILIKE يتيح لك استخدام الرمز '%' لتحديد الشكل الذي سيكون عليه النمط الخاص بك.

نستخدم الجدول التالي لهذه الحالة ونستهدف عمود الاسم:

نقوم بإنشاء وظيفة مشابهة لتلك التي قمنا بها سابقًا. ومع ذلك، تم تغيير نوع المعلمة ويستخدم استعلام الإرجاع عامل التشغيل ILIKE الذي تتم إضافته كوسيطة عند استدعاء الوظيفة.

بمجرد أن تصبح الدالة جاهزة، يمكننا استدعاؤها لإرجاع الجدول. هناك طرق مختلفة للقيام بذلك. على سبيل المثال، إذا كان نمط البحث يحتوي على 'Jo' في السلسلة، فإننا نقوم بتنفيذ استعلام الأمر كما يلي:

حدد * من get_details('%Jo%');

نحن نطابق جميع القيم مع 'Jo' في سلسلتها، مما يعطينا سجلين.

إذا كنا نعرف فقط الجزء الأخير من السلسلة، فإننا نقوم بتحريف الاستعلام وتشغيله على النحو التالي:

حدد * من get_details('%Tyson');

وأخيرًا، إذا عرفنا الجزء الأول من السلسلة، نضيف الرمز “&” بعد النمط كما هو موضح في الشكل التالي:

حدد * من get_details('Tim%');

هذه هي الأمثلة المختلفة حول كيفية استخدام وظيفة PostgreSQL لإرجاع جدول.

خاتمة

PostgreSQL هي قاعدة بيانات قوية تحتوي على العديد من الميزات. عند إنشاء الوظائف، يمكنك ضبطها لإرجاع جدول كمجموعة النتائج لأسباب مختلفة بما في ذلك تحقيق التغليف. قدمت هذه المقالة مثالين لإنشاء واستخدام دالة تقوم بإرجاع جدول في PostgreSQL.