logo

פונקציות PostgreSQL

בסעיף זה, אנו הולכים להבין את פעולתו של פונקציות PostgreSQL, צור פונקציה פקודה, וראה את הדוגמה בזמן אמת של פקודת PostgreSQL CREATE FUNCTION באמצעות הכלים השונים של PostgreSQL כגון pgadmin4 ו מעטפת SQL (PSQL).

וראה דוגמה של קריאה א פונקציה מוגדרת על ידי משתמש כמו סימון מיקום בשם סימון, הסימון המעורב.

מהי פונקציית PostgreSQL?

פונקציית PostgreSQL או א הליך מאוחסן הוא קבוצה של SQL ופקודות פרוצדורליות כגון הצהרות, הקצאות, לולאות, זרימת בקרה וכו' מאוחסן בשרת מסד הנתונים וניתן לערב אותו באמצעות ה ממשק SQL . וזה ידוע גם בשם נהלים מאוחסנים של PostgreSQL .

אנו יכולים ליצור פונקציות PostgreSQL בשפות שירות, למשל, SQL , PL/pgSQL , ג , פִּיתוֹן וכו '

זה מאפשר לנו לבצע פעולות, שבדרך כלל לוקחות פקודות שונות ונסיעות הלוך ושוב בפונקציה בתוך מסד הנתונים.

מהי הפקודה PostgreSQL CREATE Function?

ב-PostgreSQL, אם נרצה לציין פונקציה חדשה המוגדרת על ידי משתמש, נוכל להשתמש ב- צור פונקציה פקודה.

תחביר של פקודת PostgreSQL CREATE Function

התחביר עבור פקודת PostgreSQL CREATE Function הוא כדלקמן:

 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; $$ 

בתחביר לעיל, השתמשנו בפרמטרים הבאים, כפי שמוצג בטבלה הבאה:

המרת מחרוזת ל-enum
פרמטרים תיאור
function_name
  • ה שם הפונקציה פרמטר משמש להגדרת שם הפונקציה.
  • שם הפונקציה נכתב אחרי ה- צור פונקציה מילת מפתח.
[או החלף]
  • אנחנו יכולים להשתמש ב או להחליף מילת מפתח אם ברצוננו לשנות את הפונקציה הנוכחית.
  • וזה פרמטר אופציונלי.
פוּנקצִיָה
  • לאחר השימוש ב או להחליף מילת מפתח, נוכל להגדיר את פוּנקצִיָה רשימת פרמטרים המכוסים בסוגריים שלאחר ה- שם הפונקציה.
  • ופונקציה יכולה להכיל אפס או כמה פרמטרים.
לַחֲזוֹר
  • נוכל להגדיר את סוג הנתונים לאחר ה לַחֲזוֹר מילת מפתח, שאנו הולכים להחזיר מהפונקציה.
  • זה יכול להיות סוג בסיס, מורכב או תחום או התייחסות לסוג של עמודת טבלה.
שפה plpgsql
  • הוא משמש להגדרת שם השפה הפרוצדורלית שבה הפונקציה מבוצעת.
  • ולא רק plpgsql, ה- PostgreSQL תומך בשפות פרוצדורליות שונות.
Function_body
  • ה function_body מכיל את חלקי ההפעלה של הלוגיקה.

דוגמה לפקודת PostgreSQL Create Function

הבה נראה דוגמה אחרת כדי להבין את פעולתו של פונקציית יצירת PostgreSQL פקודה.

אנחנו לוקחים את אוטו שולחן מה Javatpoint מסד נתונים, שנוצר במדריך 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() הפונקציה מאחזרת מספר שלם המוגדר על ידי תנאי return int.
  • ובסוף, השתמשנו בשפת הפונקציה as plpgsql .

השתמשנו בפרמטרים הבאים ב- גוף פונקציה סָעִיף:

  • השתמשנו ב- מחרוזת בדולרים איור קבוע בקטע הפונקציות, שמתחיל ב $$ ומסתיים ב $$ .
  • בין לבין $$ סימן, אנחנו יכולים למקם בלוק, אשר מכסה ההכרזה ו ההיגיון של הפונקציה .
  • בבלוק ההכרזה, הכרזנו על משתנה שנקרא רכב_ספירת, אשר מאחסן את המכוניות שנבחרו מתוך אוטו
  • בגוף קטע הבלוק, השתמשנו ב- SELECT INTO הפקודה לבחור את המחיר של מכוניות שהערכים שלהן נמצאים בין מחיר_מאת ומחיר_עד ולתת את הפלט ל- ספירת_מכוניות
  • בסוף הבלוק, השתמשנו ב- לַחֲזוֹר פקודה כדי לקבל את

יצירת פונקציה ב-PostgreSQL

ב-PostgreSQL, אנו יכולים ליצור פונקציה בשתי דרכים:

    PostgreSQL Create Function באמצעות pgAdmin PostgreSQL Create Function באמצעות SQL Shell

PostgreSQL Create Function באמצעות pgAdmin

אנו הולכים לעקוב אחר התהליך שלהלן כדי ליצור בו פונקציה pgAdmin:

שלב 1

ראשית, נפתח את הגרסה העדכנית ביותר pgAdmin במערכת המקומית שלנו, ונלך לעץ האובייקטים ונתחבר ל- Javatpoint מסד נתונים לדוגמה בו אנו רוצים ליצור פונקציה.

שלב 2

לאחר מכן, נפתח את כלי השאילתות על ידי לחיצה על כלי השאילתה בעקבות סעיף הכלים, כפי שאנו יכולים לראות בצילום המסך שלהלן:

לולאה מוגברת של java
פונקציית PoatgreSQL2

שלב 3

כדי ליצור את get_car_Price1() פונקציה, נשתמש בקוד לעיל ב- כלי שאילתות ולחץ על לבצע לַחְצָן.

לאחר יישום הפקודה לעיל, נקבל את חלון ההודעה למטה המציג את הפונקציה get_car_Price1() היה נוצר בהצלחה לתוך מסד נתונים דומה.

פונקציית PoatgreSQL

ואנחנו יכולים לזהות את הפונקציה get_car_Price() בתוך ה פונקציות רשימה כפי שאנו יכולים לראות בצילום המסך הבא:

פונקציית PoatgreSQL

הערה: אם איננו יכולים לזהות את שם הפונקציה, נוכל ללחוץ לחיצה ימנית על הצומת Functions ולבחור בפריט התפריט Refresh... כדי להחיות את רשימת הפונקציות:

פונקציית PoatgreSQL

יצירת פונקציה באמצעות SQL Shell(psql)

אנחנו הולכים לעקוב אחר התהליך שלהלן כדי ליצור טבלה psql :

שלב 1

  • ראשית, נפתח את ה psql במערכת המקומית שלנו, ונתחבר למסד הנתונים שבו נרצה ליצור פונקציה.
  • ניצור טבלה ב- javatpoint מסד נתונים, שיצרנו קודם לכן במדריך PostgreSQL.

שלב 2

  • לחיבור מסד נתונים, נזין את הפקודה הבאה:
 c javatpoint 

תְפוּקָה

לאחר ביצוע הפקודה לעיל, נקבל את הפלט הבא:

פונקציית PoatgreSQL

הערה: אם נזין פקודה דומה כמו לעיל כדי ליצור פונקציה, ב-psql, זה יוציא את השגיאה למטה כלומר: הפונקציה get_car_price כבר קיימת עם אותם סוגי ארגומנטים.

פונקציית PoatgreSQL

לכן, כדי לפתור שגיאה זו, אנו יוצרים פונקציה חדשה בשם קבל_מחיר_מכונית1 () בשלב הבא.

שלב 3

כיצד לחשוף אפליקציות נסתרות

נכניס את הפקודה למטה כדי ליצור פונקציה כפי ש קבל_מחיר_מכונית1 () בתוך ה 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() הפונקציה נוצרה בהצלחה.

פונקציית PoatgreSQL

שלב 4

אנו יכולים להשתמש בפקודה למטה כדי לרשום את כל הפונקציות המוגדרות על ידי המשתמש במסד הנתונים הקיים.

 javatpoint=# df 

תְפוּקָה

לאחר ביצוע הפקודה לעיל, נקבל את הפלט שלהלן:

פונקציית PoatgreSQL

כיצד להתקשר לפונקציה המוגדרת על ידי משתמש

ב-PostgreSQL, אנו יכולים לקרוא לפונקציה המוגדרת על ידי המשתמש בשלוש דרכים, שהן כדלקמן:

    סימון מיקום סימון בשם הסימון המעורב

קריאה לפונקציה באמצעות סימון מיקום

אם נרצה לתאר את הארגומנטים בסדר דומה כפרמטרים, נוכל לקרוא לפונקציה עם ה- סימון מיקום עֶזרָה.

זרם מסנן java

תן לנו לראות דוגמה לדוגמה כדי להבין את סימון מיקום עובדים כדי לקרוא לפונקציה מסוימת.

בדוגמה למטה, ה get_car_price() טיעונים הם 26000 ו 70000 , שהוא שווה ערך ל- מחיר מ ו מחיר_ל פרמטרים.

 Select get_car_Price(26000,70000); 

תְפוּקָה

נקבל את הפלט הבא על יישום הפקודה לעיל, אשר מאחזרת את ארבע השורות שלהן מחיר_מכונית בין 26000 עד 70000.

פונקציית PoatgreSQL

כאשר לפונקציה אין כמעט פרמטרים, נוכל לקרוא לפונקציה בעזרת ה- סימון מיקום .

אם הפונקציה מכילה מספר פרמטרים, נוכל להשתמש ב- סימון בשם לקרוא לפונקציה המסוימת בגלל השימוש ב- סימון בשם יהפוך את קריאת הפונקציה למובנת יותר.

קריאה לפונקציה באמצעות סימון שם

בדוגמה שלהלן, אנו מציגים את פעולת הקריאה ל- get_car_Price() פונקציה באמצעות הסימון בעל השם:

 select get_car_Price( Price_from => 26000, Price_to => 70000 ); 

תְפוּקָה

נקבל את הפלט הבא בביצוע הפקודה לעיל, המציגה ארבע שורות על סמך הטווח שלמעלה של מחיר_מכונית .

פונקציית PoatgreSQL

בסימון שהוזכר קודם לכן, השתמשנו ב- => להבדיל בין הטיעונים שם וערך .

PostgreSQL מאפשר את התחביר הישן יותר שנוצר על := בשביל ה תאימות לאחור , כפי שאנו יכולים לראות בפקודה הבאה:

 select get_car_Price( Price_from := 26000, Price_to := 70000 ); 

תְפוּקָה

לאחר ביצוע הפקודה לעיל, נקבל פלט דומה בהשוואה לתוצאה של הפקודה לעיל כאשר אנו משתמשים ב-' =>' במקום ':=' .

פונקציית PoatgreSQL

קריאה לפונקציה באמצעות סימון מעורב

זה הקיבוץ של מיקום ושמו סימונים.

הבה נראה דוגמה לדוגמה כדי להבין את פעולתו של קריאה לפונקציה באמצעות סימון מעורב.

בתוך ה סימון מעורב , איננו יכולים להשתמש ב- בשם פרמטרים לפני פרמטרים מיקוםיים .

לדוגמה:

בפקודה למטה, נשתמש ב- מושג בשם ל מחיר מ פרמטר as Price_from=>26000, ואילו עבור ה מחיר_ל פרמטר, השתמשנו ב- מושג מיקום כפי ש 70000 , כפי שאנו יכולים לראות בפקודה הבאה:

המוקרים המוקדמים
 select get_car_Price(Price_from=>26000,70000); 

תְפוּקָה

לאחר ביצוע הפקודה לעיל, PostgreSQL מעלה שגיאה האומרת כי ארגומנט מיקום אינו יכול לעקוב אחר הארגומנט בעל השם .

פונקציית PoatgreSQL

כדי לפתור את השגיאה לעיל, אנו משתמשים ב- סימון מיקום ושמות ל the get_car_price() פונקציה שבה 26000 משמש לייצג את סימון מיקום; מצד שני, Price_to=>70000 משמש לייצג את סימון בשם :

 select get_car_Price(26000,Price_to=>70000); 

תְפוּקָה

לאחר ביצוע הפקודה לעיל, נקבל את הפלט למטה, אשר מחזיר את המכוניות שלהן מחיר_מכונית הוא בין 26000 ל-70000.

פונקציית PoatgreSQL

סקירה כללית

בתוך ה פונקציית PostgreSQL בסעיף, למדנו את הנושאים הבאים:

  • השתמשנו ב- פונקציית CREATE פקודה ליצירת פונקציה מוגדרת על ידי המשתמש עבור הטבלה המסוימת.
  • הבנו את התהליך של קריאה לפונקציה המוגדרת על ידי המשתמש בעזרת סימונים שונים כגון מיקום, שם ומעורב.