Ebben a részben megértjük a PostgreSQL függvények működését, a függvény parancs létrehozását, és megnézzük a PostgreSQL CREATE FUNCTION parancs valós idejű példáját a PostgreSQL különböző eszközeinek, például a pgadmin4 és az SQL shell (PSQL) segítségével.
És lásd a példát egy felhasználó által definiált függvény hívására, mint például a pozicionális jelölés nevesített jelölés, a vegyes jelölés.
- Mi a PostgreSQL függvény?
- Mi a PostgreSQL CREATE Function parancs?
- A PostgreSQL CREATE Function parancs szintaxisa
- Example of PostgreSQL Create Function Command
- Creating a new function
- Függvény létrehozása a PostgreSQL-ben
- PostgreSQL függvény létrehozása a pgAdmin használatával
- Megjegyzés: Ha nem tudjuk azonosítani a függvény nevét, akkor a jobb gombbal kattinthatunk a Functions csomópontra, és a Refresh (Frissítés) lehetőséget választhatjuk… menu item to revive the function list:
- Creating a function using SQL Shell(psql)
- Note: If we enter a similar command as above to create a function, in psql, it will issue the below error that is: the function get_car_price already exists with the same argument types.
- How to Call a user-defined function
- Függvény hívása a pozicionális jelölés segítségével
- Függvény hívása a megnevezett jelölés használatával
- Függvény hívása a vegyes jelölés használatával
- Áttekintés
Mi a PostgreSQL függvény?
A PostgreSQL függvény vagy tárolt eljárás SQL és procedurális parancsok, például deklarációk, hozzárendelések, ciklusok, vezérlési folyamatok stb. összessége, amelyet az adatbázis-kiszolgálón tárolnak, és az SQL-felület segítségével lehet bevonni. És PostgreSQL tárolt eljárásokként is ismert.
PostgreSQL függvényeket hozhatunk létre több nyelven, például SQL, PL/pgSQL, C, Python stb. nyelven.
Ez lehetővé teszi számunkra olyan műveletek elvégzését, amelyek általában különböző parancsokat és körutakat igényelnének egy függvényben az adatbázisban.
Mi a PostgreSQL CREATE Function parancs?
A PostgreSQL-ben, ha egy új felhasználó által meghatározott függvényt szeretnénk megadni, akkor a CREATE FUNCTION parancsot használhatjuk.
A PostgreSQL CREATE Function parancs szintaxisa
A PostgreSQL CREATE Function parancs szintaxisa a következő:
A fenti szintaxisban a következő paramétereket használtuk, az alábbi táblázatban látható módon:
Paraméterek | leírás | |
---|---|---|
funkció_név |
|
|
|
||
Function |
|
|
RETURN |
|
|
Language plpgsql |
|
|
Function_body |
|
Example of PostgreSQL Create Function Command
Let us see a different example to understand the working of the PostgreSQL CREATE Function command.
We are taking the Car table from the Javatpoint database, created in the PostgreSQL Tutorial.
Creating a new function
In the below command, we are creating a new function, which counts the Cars whose Car_Price between the Price_from and Price_to parameters:
The get_car_Price function is divided into two main sections, which are Header and Function Body.
A Header részben a következő paramétereket használtuk:
- A függvény nevét elsősorban get_car_Price() néven adjuk meg, amelyet a create függvény után írunk
- A get_car_Price() függvény ezután két paramétert tartalmaz Price_from és Price_to néven, amelyek egész szám adattípusúak.
- Ezután a get_car_Price() függvény lekérdez egy egész számot, amelyet a return int feltétel határoz meg.
- A végén pedig a függvény nyelvét plpgsql-ként használtuk.
A függvénytest részben a következő paramétereket használtuk:
- A függvényrészben a dollárjeles stringkonstans illusztrációt használtuk, amely $$-val kezdődik és $$$-val végződik.
- A $$ jel közé egy blokkot helyezhetünk, amely a függvény deklarációját és logikáját takarja.
- A deklarációs blokkban deklaráltunk egy Car_count nevű változót,amely a Carból kiválasztott autókat tárolja
- A blokkrész testében, a SELECT INTOparanccsal kiválasztottuk azon autók árát, amelyek értéke a Price_from és Price_to között van, és a kimenetet a Car_countnak adtuk
- A blokk végén a RETURN parancsot használtuk, hogy megkapjuk a
Függvény létrehozása a PostgreSQL-ben
A PostgreSQL-ben kétféleképpen hozhatunk létre függvényt:
- PostgreSQL függvény létrehozása a pgAdmin használatával
- PostgreSQL függvény létrehozása az SQL Shell használatával
PostgreSQL függvény létrehozása a pgAdmin használatával
Az alábbi folyamatot fogjuk követni egy függvény létrehozásához a pgAdminban:
Step1
Először is megnyitjuk a pgAdmin legújabb verzióját a helyi rendszerünkben, majd az objektumfára lépünk, és csatlakozunk a Javatpoint mintaadatbázishoz, amelyben egy függvényt szeretnénk létrehozni.
Step2
Ezután megnyitjuk a lekérdező eszközt a lekérdező eszközre kattintva az Eszközök részt követve, ahogy az alábbi képernyőképen látható:
Step3
A get_car_Price1() függvény létrehozásához a fenti kódot fogjuk használni a lekérdező eszközben, és az Execute gombra kattintunk.
A fenti parancs végrehajtása után az alábbi üzenetablakot kapjuk, amely megjeleníti, hogy a get_car_Price1() függvényt sikeresen létrehoztuk egy hasonló adatbázisban.
A Functions listában pedig azonosíthatjuk a get_car_Price() függvényt, ahogy az alábbi képernyőképen láthatjuk:
Creating a function using SQL Shell(psql)
We are going to follow the below process to create a table in psql:
Step1
- Firstly, we will open the psqlin our local system, and we will connect to the database where we want to create a function.
- We will create a table in the javatpointdatabase, which we created earlier in the PostgreSQL tutorial.
Step2
- For connecting a database, we will enter the below command:
Output
After executing the above command, we will get the following output:
Note: If we enter a similar command as above to create a function, in psql, it will issue the below error that is: the function get_car_price already exists with the same argument types.
Therefore, to resolve this error, we create a new function as get_car_Price1() in the next step.
Step3
We will enter the below command to create a function as get_car_Price1() in the javatpoint database.
Output
We will get the following output on implementing the above command, which displays that the get_car_Price_count1() function has been created successfully.
Step4
We can use the below command to list all user-defined functions in the existing database.
Output
After executing the above command, we will get the below output:
How to Call a user-defined function
In PostgreSQL, we can call the user-defined function in three ways, which are as follows:
- Pozicionális jelölés
- Neves jelölés
- A vegyes jelölés
Függvény hívása a pozicionális jelölés segítségével
Ha az argumentumokat a paraméterekhez hasonló sorrendben szeretnénk leírni, akkor a függvényt a pozicionális jelölés segítségével hívhatjuk meg.
Lássunk egy példát, hogy megértsük, hogyan működik a pozicionális jelölés egy adott függvény hívására.
Az alábbi példában a get_car_price() argumentumai 26000 és 70000, ami megfelel a Price_from és Price_to paramétereknek.
Kimenet
A fenti parancs végrehajtásakor a következő kimenetet kapjuk, amely lekérdezi azt a négy sort, amelynek car_price értéke 26000 és 70000 között van.
Ha a függvénynek alig van paramétere, akkor a pozicionális jelölés segítségével hívhatunk függvényt.
Ha a függvény több paramétert tartalmaz, akkor a megnevezett jelölés segítségével hívhatjuk meg az adott függvényt, mert a megnevezett jelölés használatával érthetőbbé válik a függvényhívás.
Függvény hívása a megnevezett jelölés használatával
Az alábbi példában a get_car_Price() függvény meghívásának működését mutatjuk be a megnevezett jelölés használatával:
Kimenet
A fenti parancs végrehajtásakor a következő kimenetet kapjuk, amely négy sort jelenít meg a car_price fenti tartománya alapján.
A korábban említett jelölésben a =>-t használtuk az argumentum nevének és értékének megkülönböztetésére.
A PostgreSQL a visszafelé kompatibilitás érdekében engedélyezi a :=-on létrehozott régebbi szintaxist, amint azt a következő parancsban láthatjuk:
Kimenet
A fenti parancs végrehajtása után hasonló kimenetet kapunk, mint a fenti parancs eredményéhez képest, ahol a ‘:=’ helyett a ‘=>’-t használjuk.
Függvény hívása a vegyes jelölés használatával
A pozicionális és a név szerinti jelölések csoportosítása.
Lássunk egy példát, hogy megértsük a függvényhívás a vegyes jelölés használatával működését.
A vegyes jelölésben nem használhatjuk a megnevezett Paramétereket a pozicionális Paraméterek előtt.
Példa:
Az alábbi parancsban a Price_from paraméterhez a Price_from=>26000 névleges jelölést használjuk, míg a Price_to paraméterhez a pozicionális jelölést használtuk, mint 70000, ahogy az alábbi parancsban is látható:
Kimenet
A fenti parancs végrehajtása után a PostgreSQL hibát jelez, amely szerint a pozicionális argumentum nem követheti a megnevezett argumentumot.
A fenti hiba feloldásához a get_car_price() függvényben a pozicionális és a név szerinti jelölést használjuk, ahol a 26000 a pozicionális jelölést képviseli; másrészt a Price_to=>70000 a név szerinti jelölést:
Kimenet
A fenti parancs végrehajtása után az alábbi kimenetet kapjuk, amely visszaadja azokat az autókat, amelyek car_price értéke 26000 és 70000 között van.
Áttekintés
A PostgreSQL függvények fejezetben a következő témaköröket tanultuk:
- A CREATE Functionparanccsal létrehoztunk egy felhasználó által definiált függvényt az adott táblához.
- Megtanultuk a felhasználó által definiált függvény hívásának folyamatát a különböző jelölések segítségével, mint például a pozicionális, a név szerinti és a vegyes jelölések.