في هذا القسم، سوف نفهم عمل وظائف PostgreSQL، إنشاء وظيفة الأمر، وانظر المثال في الوقت الحقيقي أمر PostgreSQL CREATE FUNCTION باستخدام أدوات PostgreSQL المختلفة مثل pgadmin4 و شل SQL (PSQL).
وانظر مثال استدعاء أ وظيفة محددة من قبل المستخدم مثل التدوين الموضعي المسمى التدوين، التدوين المختلط.
ما هي وظيفة PostgreSQL؟
وظيفة PostgreSQL أو الإجراء المخزن هي مجموعة من أوامر SQL والأوامر الإجرائية مثل الإعلانات، المهام، الحلقات، تدفق التحكم وما إلى ذلك المخزنة على خادم قاعدة البيانات ويمكن مشاركتها باستخدام واجهة SQL . ومن المعروف أيضا باسم إجراءات PostgreSQL المخزنة .
يمكننا إنشاء وظائف PostgreSQL بلغات الخدمة، على سبيل المثال، SQL , بل/بجسكل , ج , بايثون إلخ.
فهي تمكننا من تنفيذ العمليات التي تتطلب بشكل عام أوامر مختلفة ورحلات ذهابًا وإيابًا في وظيفة داخل قاعدة البيانات.
ما هو أمر PostgreSQL CREATE Function؟
في PostgreSQL، إذا أردنا تحديد وظيفة جديدة محددة من قبل المستخدم، فيمكننا استخدام الأمر إنشاء وظيفة يأمر.
بناء جملة أمر PostgreSQL CREATE Function
بناء الجملة ل أمر إنشاء وظيفة PostgreSQL على النحو التالي:
CREATE [OR REPLACE] FUNCTION function_name (arguments) RETURNS return_datatype LANGUAGE plpgsql AS $variable_name$ DECLARE declaration; [...] -- variable declaration BEGIN [...] -- logic RETURN variable_name END; $$
في بناء الجملة أعلاه، استخدمنا المعلمات التالية، كما هو مبين في الجدول أدناه:
كيفية التحقق من حجم الشاشة
حدود | وصف |
---|---|
اسم وظيفة |
|
[أو استبدال] |
|
وظيفة |
|
يعود |
|
اللغة plpgsql |
|
Function_body |
|
مثال على أمر إنشاء وظيفة PostgreSQL
دعونا نرى مثالاً مختلفًا لفهم عمل وظيفة إنشاء PostgreSQL يأمر.
نحن نأخذ سيارة الجدول من جافاتبوينت قاعدة البيانات، التي تم إنشاؤها في البرنامج التعليمي PostgreSQL.
إنشاء وظيفة جديدة
في الأمر أدناه، نقوم بإنشاء وظيفة جديدة، والتي تحسب سيارات لمن سعر السيارة بين ال السعر_من والسعر_إلى حدود:
Create function get_car_Price(Price_from int, Price_to int) returns int language plpgsql as $$ Declare Car_count integer; Begin select count(*) into Car_count from Car where Car_price between Price_from and Price_to; return Car_count; End; $$;
ال get_car_Price وتنقسم الوظيفة إلى قسمين رئيسيين، وهما رأس ونص الوظيفة .
لقد استخدمنا المعلمات التالية في رأس قسم:
- في المقام الأول، نحدد اسم الوظيفة كما get_car_Price()، والذي هو مكتوب بعد إنشاء وظيفة
- بعد ذلك، get_car_Price() تحتوي الدالة على معلمتين السعر يبدأ من و السعر_إلى، وجود نوع بيانات صحيح.
- ثم، get_car_Price() تقوم الدالة باسترداد عدد صحيح محدد بواسطة شرط الإرجاع int.
- وفي النهاية، استخدمنا اللغة الوظيفية كما com.plpgsql .
لقد استخدمنا المعلمات التالية في هيئة الوظيفة قسم:
- لقد استخدمنا سلسلة مقتبسة بالدولار توضيح ثابت في قسم الوظيفة، والذي يبدأ بـ $$ وينتهي ب $$ .
- ما بين أثنين $$ علامة، يمكننا وضع كتلة، والتي تغطي الإعلان و منطق الوظيفة .
- في كتلة الإعلان، أعلنا عن متغير يسمى عدد السيارات، الذي يخزن السيارات المختارة من سيارة
- في جسم قسم الكتلة، استخدمنا اختر في أمر لتحديد سعر السيارات التي تتراوح قيمها بين السعر_من والسعر_إلى وإعطاء الإخراج إلى عدد السيارات
- في نهاية الكتلة، استخدمنا يعود أمر للحصول على
إنشاء وظيفة في PostgreSQL
في PostgreSQL، يمكننا إنشاء دالة بطريقتين:
PostgreSQL إنشاء وظيفة باستخدام pgAdmin
سنتبع العملية التالية لإنشاء وظيفة فيها مشرف الصفحة:
الخطوة 1
أولا، سوف نقوم بفتح الإصدار الأحدث pgAdmin في نظامنا المحلي، وسوف نذهب إلى شجرة الكائنات ونتصل بـ جافاتبوينت نموذج قاعدة البيانات التي نريد إنشاء وظيفة فيها.
الخطوة 2
تحويل int إلى سلسلة
بعد ذلك سوف نقوم بفتح أداة الاستعلام بالضغط على تتبع أداة الاستعلام قسم الأدوات، كما يمكننا أن نرى في لقطة الشاشة أدناه:
الخطوه 3
لإنشاء get_car_Price1() الدالة، سوف نستخدم الكود أعلاه في أداة الاستعلام وانقر على ينفذ زر.
بعد تنفيذ الأمر أعلاه، سوف نحصل على نافذة الرسالة أدناه التي تعرض هذه الوظيفة get_car_Price1() كان مخلوق بنجاح في قاعدة بيانات مماثلة.
ويمكننا تحديد الوظيفة get_car_Price() في ال المهام القائمة كما نرى في الصورة التالية:
ملاحظة: إذا لم نتمكن من تحديد اسم الوظيفة، فيمكننا النقر بزر الماوس الأيمن فوق عقدة الوظائف وتحديد عنصر القائمة تحديث... لإحياء قائمة الوظائف:
إنشاء دالة باستخدام SQL Shell (psql)
سنتبع العملية التالية لإنشاء جدول psql :
الخطوة 1
- في البداية سوف نقوم بفتح psql في نظامنا المحلي، وسوف نتصل بقاعدة البيانات حيث نريد إنشاء وظيفة.
- سوف نقوم بإنشاء جدول في javatpoint قاعدة البيانات، التي قمنا بإنشائها سابقًا في البرنامج التعليمي لـ PostgreSQL.
الخطوة 2
- لربط قاعدة البيانات، سوف نقوم بإدخال الأمر أدناه:
c javatpoint
انتاج |
بعد تنفيذ الأمر أعلاه، سنحصل على الإخراج التالي:
ملاحظة: إذا أدخلنا أمرًا مشابهًا كما هو مذكور أعلاه لإنشاء دالة، في psql، فسوف يُصدر الخطأ أدناه وهو: الدالة get_car_price موجودة بالفعل بنفس أنواع الوسائط.
ولذلك، لحل هذا الخطأ، نقوم بإنشاء وظيفة جديدة باسم get_car_Price1 () في الخطوة التالية.
الخطوه 3
شريط أدوات الوصول السريع للكلمة
سوف نقوم بإدخال الأمر أدناه لإنشاء وظيفة مثل get_car_Price1 () في ال javatpoint قاعدة البيانات.
javatpoint=# Create function get_car_Price1(Price_from int, Price_to int) javatpoint-# returns int javatpoint-# language plpgsql javatpoint-# as javatpoint-# $$ javatpoint$# Declare javatpoint$# Car_count integer; javatpoint$# Begin javatpoint$# select count(*) javatpoint$# into Car_count javatpoint$# from Car javatpoint$# where car_price between Price_from and Price_to; javatpoint$# return Price_count; javatpoint$# End; javatpoint$# $$;
انتاج |
سوف نحصل على الإخراج التالي عند تنفيذ الأمر أعلاه، والذي يعرض أن get_car_Price_count1() تم إنشاء الوظيفة بنجاح.
الخطوة 4
يمكننا استخدام الأمر أدناه لسرد كافة الوظائف المحددة من قبل المستخدم في قاعدة البيانات الموجودة.
javatpoint=# df
انتاج |
بعد تنفيذ الأمر أعلاه، سنحصل على الإخراج أدناه:
كيفية استدعاء وظيفة محددة من قبل المستخدم
في PostgreSQL، يمكننا استدعاء الوظيفة المعرفة من قبل المستخدم بثلاث طرق، وهي كما يلي:
استدعاء دالة باستخدام التدوين الموضعي
إذا أردنا وصف الوسائط بترتيب مماثل كمعلمات، فيمكننا استدعاء دالة باستخدام التابع التدوين الموضعي يساعد.
هيكل جافا
دعونا نرى مثالا عينة لفهم التدوين الموضعي العمل على استدعاء وظيفة معينة.
في المثال أدناه، get_car_price() الحجج هي 26000 و 70000 ، وهو ما يعادل السعر يبدأ من و السعر_إلى حدود.
Select get_car_Price(26000,70000);
انتاج |
سوف نحصل على الإخراج التالي عند تنفيذ الأمر أعلاه، والذي يسترد تلك الصفوف الأربعة التي car_price يتراوح ما بين من 26000 إلى 70000
عندما لا تحتوي الدالة على أي معلمات تقريبًا، يمكننا استدعاء دالة بمساعدة الدالة التدوين الموضعي .
إذا كانت الدالة تحتوي على عدة معلمات، فيمكننا استخدام الدالة تدوين اسمه لاستدعاء وظيفة معينة بسبب استخدام تدوين اسمه سيجعل استدعاء الوظيفة أكثر قابلية للفهم.
استدعاء دالة باستخدام التدوين المسمى
في المثال أدناه، نعرض طريقة عمل استدعاء get_car_Price() وظيفة باستخدام التدوين المسمى:
select get_car_Price( Price_from => 26000, Price_to => 70000 );
انتاج |
سنحصل على الإخراج التالي عند تنفيذ الأمر أعلاه، والذي يعرض أربعة صفوف بناءً على النطاق أعلاه car_price .
في التدوين المذكور سابقا، استخدمنا => لتمييز الحجة الاسم والقيمة .
يسمح PostgreSQL بالصيغة الأقدم التي تم إنشاؤها على := ل التوافق ، كما نرى في الأمر التالي:
select get_car_Price( Price_from := 26000, Price_to := 70000 );
انتاج |
بعد تنفيذ الأمر أعلاه، سنحصل على نتيجة مماثلة مقارنة بنتيجة الأمر أعلاه حيث نستخدم ' =>' بدلاً من ':=' .
استدعاء دالة باستخدام التدوين المختلط
وهي التجمع الموضعية والمسماة التدوينات.
دعونا نرى مثالا نموذجيا لفهم عمل استدعاء دالة باستخدام التدوين المختلط.
في ال تدوين مختلط ، لا يمكننا استخدام المعلمات المسماة قبل المعلمات الموضعية .
على سبيل المثال:
في الأمر أدناه، سوف نستخدم فكرة مسماة ل السعر يبدأ من المعلمة كما السعر_من=>26000, بينما بالنسبة ل السعر_إلى المعلمة، لقد استخدمنا الفكرة الموضعية مثل 70000 ، كما نرى في الأمر أدناه:
حالة بوابة -s
select get_car_Price(Price_from=>26000,70000);
انتاج |
بعد تنفيذ الأمر أعلاه، يُظهر PostgreSQL خطأً يفيد بأن الملف لا يمكن للحجة الموضعية أن تتبع الوسيطة المسماة .
لحل الخطأ أعلاه، نحن نستخدم التدوين الموضعي والمسمى ل get_car_price() وظيفة حيث 26000 يستخدم لتمثيل التدوين الموضعي؛ على الجانب الآخر، السعر_إلى=>70000 يستخدم لتمثيل تدوين اسمه :
select get_car_Price(26000,Price_to=>70000);
انتاج |
بعد تنفيذ الأمر أعلاه، سوف نحصل على الإخراج أدناه، والذي يعيد تلك السيارات التي car_price من 26000 الى 70000
ملخص
في ال وظيفة PostgreSQL القسم، تعلمنا المواضيع التالية:
- لقد استخدمنا إنشاء وظيفة أمر لإنشاء وظيفة محددة من قبل المستخدم لجدول معين.
- لقد فهمنا عملية استدعاء وظيفة محددة من قبل المستخدم بمساعدة رموز مختلفة مثل الموضعية والمسماة والمختلطة.