Ebben a részben a működését fogjuk megérteni PostgreSQL függvények, függvény létrehozása parancsot, és tekintse meg a valós idejű példát PostgreSQL CREATE FUNCTION parancs a PostgreSQL különböző eszközeivel, mint pl pgadmin4 és SQL shell (PSQL).
És lásd a példát a hívására felhasználó által definiált funkció mint például notation nevű helyzeti jelölés, a vegyes jelölés.
Mi az a PostgreSQL függvény?
Egy PostgreSQL függvény vagy a tárolt eljárás SQL és procedurális parancsok halmaza, mint pl deklarációk, hozzárendelések, hurkok, vezérlési folyamat stb. tárolja az adatbázis-kiszolgálón, és részt vehet a SQL interfész . És más néven is ismert PostgreSQL tárolt eljárások .
PostgreSQL függvényeket készíthetünk szerválnyelveken, pl. SQL , PL/pgSQL , C , Piton stb.
Lehetővé teszi számunkra, hogy olyan műveleteket hajtsunk végre, amelyek általában különféle parancsokat és körutakat vesznek igénybe egy függvényben az adatbázison belül.
Mi az a PostgreSQL CREATE függvény parancs?
A PostgreSQL-ben, ha új, felhasználó által definiált függvényt szeretnénk megadni, használhatjuk a FUNKCIÓ LÉTREHOZÁSA parancs.
A PostgreSQL CREATE függvény parancs szintaxisa
A szintaxis a számára PostgreSQL CREATE függvény parancs az alábbiak:
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; $$
A fenti szintaxisban a következő paramétereket használtuk, az alábbi táblázat szerint:
konvertálni dupla java-ba
Paraméterek | Leírás |
---|---|
függvény_neve |
|
[VAGY CSERE] |
|
Funkció |
|
VISSZATÉRÉS |
|
Nyelv plpgsql |
|
Function_body |
|
Példa a PostgreSQL Create Function parancsra
Nézzünk egy másik példát, hogy megértsük a működését PostgreSQL CREATE függvény parancs.
Fogadjuk a Autó táblázat a Javapont adatbázis, amelyet a PostgreSQL oktatóprogramban hoztak létre.
Új funkció létrehozása
Az alábbi parancsban egy új függvényt hozunk létre, amely a Autók akinek Car_Price között Ár_tól és Ár_ig paraméterek:
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; $$;
A get_car_Price funkció két fő részre oszlik, amelyek Fejléc és funkciótörzs .
A következő paramétereket használtuk a Fejléc szakasz:
- Elsősorban a függvény nevét adjuk meg get_car_Price(), amely után van írva funkció létrehozása
- Ezt követően a get_car_Price() függvény két paramétert tartalmaz Ár_tól és Price_to, egész számú adattípussal.
- Aztán a get_car_Price() függvény a return int feltétel által meghatározott egész számot kér le.
- Végül pedig a as függvénynyelvet használtuk plpgsql .
A következő paramétereket használtuk a Funkciótest szakasz:
- Használtuk a dolláros idézetű húr állandó szemléltetése a funkció részben, amely azzal kezdődik $$ és azzal végződik $$ .
- Közte $$ jelet, elhelyezhetünk egy blokkot, amely lefedi a nyilatkozatot és a függvény logikája .
- A deklarációs blokkban deklaráltunk egy úgynevezett változót Car_count, amely a közül kiválasztott autókat tárolja Autó
- A blokk szakasz törzsében a VÁLASZTÁS BE paranccsal válassza ki azoknak az autóknak az árát, amelyek értéke között van Ár_tól és Ár_ig és adja meg a kimenetet a Car_count
- A blokk végén a VISSZATÉRÉS parancsot a
Függvény létrehozása PostgreSQL-ben
A PostgreSQL-ben kétféleképpen hozhatunk létre függvényt:
PostgreSQL Funkció létrehozása a pgAdmin segítségével
Az alábbi folyamatot követjük egy függvény létrehozásához pgAdmin:
1. lépés
Először is megnyitjuk a legújabb verziót pgAdmin a helyi rendszerünkben, majd az objektumfához lépünk, és csatlakozunk a Javapont minta adatbázis, amelyben egy függvényt szeretnénk létrehozni.
2. lépés
Ezt követően a gombra kattintva megnyitjuk a lekérdező eszközt A lekérdező eszköz az Eszközök szakaszt követte, ahogy az alábbi képernyőképen is láthatjuk:
jtextfield
3. lépés
Létrehozásához a get_car_Price1() függvényben a fenti kódot fogjuk használni lekérdező eszköz és kattintson a Végrehajtás gomb.
A fenti parancs végrehajtása után az alábbi üzenet ablakot kapjuk, amely megjeleníti a funkciót get_car_Price1() volt létre sikeresen egy hasonló adatbázisba.
És azonosítani tudjuk a funkciót get_car_Price() ban,-ben Funkciók lista, amint azt a következő képernyőképen láthatjuk:
Megjegyzés: Ha nem tudjuk azonosítani a függvény nevét, kattintson a jobb gombbal a Funkciók csomópontra, és válassza a Frissítés... menüpontot a függvénylista újraélesztéséhez:
Függvény létrehozása SQL Shell(psql) segítségével
Az alábbi folyamatot követjük egy táblázat létrehozásához psql :
1. lépés
- Először is megnyitjuk a psql a helyi rendszerünkben, és csatlakozunk ahhoz az adatbázishoz, ahol függvényt szeretnénk létrehozni.
- Létrehozunk egy táblázatot a javatpoint adatbázis, amelyet korábban a PostgreSQL oktatóanyagban hoztunk létre.
2. lépés
- Adatbázis csatlakoztatásához az alábbi parancsot írjuk be:
c javatpoint
Kimenet
A fenti parancs végrehajtása után a következő kimenetet kapjuk:
Megjegyzés: Ha a fentihez hasonló parancsot adunk meg egy függvény létrehozásához, psql-ben, akkor az alábbi hibát adja ki: a get_car_price függvény már létezik ugyanazokkal az argumentumtípusokkal.
Ezért a hiba megoldása érdekében létrehozunk egy új függvényt, mint get_car_Price1 () a következő lépésben.
3. lépés
nyilvános vs privát java
Az alábbi parancsot beírjuk egy függvény létrehozásához mint get_car_Price1 () ban,-ben javatpoint adatbázis.
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$# $$;
Kimenet
A fenti parancs végrehajtása során a következő kimenetet kapjuk, amely megmutatja, hogy a get_car_Price_count1() funkció sikeresen létrejött.
4. lépés
Az alábbi paranccsal kilistázhatjuk az összes felhasználó által definiált függvényt a meglévő adatbázisban.
javatpoint=# df
Kimenet
A fenti parancs végrehajtása után az alábbi kimenetet kapjuk:
Felhasználó által definiált függvény meghívása
A PostgreSQL-ben háromféleképpen hívhatjuk meg a felhasználó által definiált függvényt, amelyek a következők:
Függvény hívása pozíciójelöléssel
Ha az argumentumokat hasonló sorrendben szeretnénk leírni paraméterként, akkor a függvényt a helyzeti jelölések Segítség.
zeenat aman színésznő
Nézzünk egy példát a megértéshez Pozíciós jelölés egy adott függvény meghívására dolgozik.
Az alábbi példában a get_car_price() érvek azok 26000 és 70000 , ami egyenértékű a Ár_tól és Ár_ig paramétereket.
Select get_car_Price(26000,70000);
Kimenet
A fenti parancs végrehajtása során a következő kimenetet kapjuk, amely lekéri azt a négy sort, amelynek autó_ár között van 26000 és 70000 között.
Ha a függvénynek alig van paramétere, a függvény segítségével hívhatunk függvényt helyzeti jelölés .
Ha a függvény több paramétert tartalmaz, használhatjuk a nevű jelölés az adott függvény meghívásához, mert a nevű jelölés érthetőbbé teszi a függvényhívást.
Függvény hívása elnevezett jelöléssel
Az alábbi példában a hívás működését mutatjuk be get_car_Price() függvény a megnevezett jelöléssel:
select get_car_Price( Price_from => 26000, Price_to => 70000 );
Kimenet
A fenti parancs végrehajtása során a következő kimenetet kapjuk, amely négy sort jelenít meg a fenti tartomány alapján autó_ár .
A korábban említett jelölésnél a => megkülönböztetni az érvelést név és érték .
A PostgreSQL engedélyezi a régebbi létrehozott szintaxist a := a visszafelé kompatibilitás , amint azt a következő parancsban láthatjuk:
select get_car_Price( Price_from := 26000, Price_to := 70000 );
Kimenet
A fenti parancs végrehajtása után hasonló kimenetet kapunk a fenti parancs eredményéhez képest, ahol a ' =>' ahelyett ':=' .
Függvény hívása vegyes jelöléssel
Ez a csoportosítása helyzeti és elnevezett jelölések.
Nézzünk egy mintát, hogy megértsük a működését Függvény hívása vegyes jelöléssel.
Ban,-ben vegyes jelölés , nem tudjuk használni a Paraméterek néven előtt helyzeti paraméterek .
Például:
Az alábbi parancsban a elnevezett fogalom számára Ár_tól paraméter as Price_from=>26000, míg a Ár_ig paramétert használtuk pozicionális fogalom mint 70000 , amint azt az alábbi parancsban láthatjuk:
css csomagoló szöveg
select get_car_Price(Price_from=>26000,70000);
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 megoldására a helyzeti és elnevezett jelölés számára a get_car_price() funkció, ahol a 26000 ábrázolására szolgál Helyzetjelölés; másrészről, Ár_ig=>70000 ábrázolására szolgál nevű jelölés :
select get_car_Price(26000,Price_to=>70000);
Kimenet
A fenti parancs végrehajtása után az alábbi kimenetet kapjuk, amely azokat az autókat adja vissza, amelyeknek autó_ár 26000 és 70000 között van.
Áttekintés
Ban,-ben PostgreSQL függvény részben a következő témákat tanultuk meg:
- Használtuk a CREATE funkció parancs segítségével létrehozhat egy felhasználó által definiált függvényt az adott táblához.
- Megértettük a folyamatot felhasználó által definiált függvény meghívása különböző jelölések segítségével, mint pl Pozíciós, elnevezett és vegyes.