logo

PostgreSQL függvények

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
  • A függvény neve paraméter a függvény nevének meghatározására szolgál.
  • A függvény neve után a FUNKCIÓ LÉTREHOZÁSA kulcsszó.
[VAGY CSERE]
  • Használhatjuk a VAGY CSERÉLJE kulcsszót, ha meg akarjuk változtatni az aktuális függvényt.
  • És ez egy opcionális paraméter.
Funkció
  • Használata után a VAGY CSERÉLJE kulcsszóval definiálhatjuk a funkció paraméterek listája, amelyek a következő zárójelben találhatók Funkció neve.
  • És egy függvény nullát vagy több paramétert is tartalmazhat.
VISSZATÉRÉS
  • Az adattípust az után tudjuk meghatározni VISSZATÉRÉS kulcsszót, amelyet a függvényből fogunk visszaadni.
  • Lehet alap-, összetett- vagy tartománytípus, vagy egy táblázatoszlop típusának hivatkozása.
Nyelv plpgsql
  • Az eljárási nyelv nevének meghatározására szolgál, amelyen a függvény végrehajtódik.
  • És nem csak plpgsql, a PostgreSQL különféle eljárási nyelveket támogat.
Function_body
  • A function_body tartalmazza a logikák végrehajtható részeit.

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 PostgreSQL Funkció létrehozása SQL Shell használatával

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
PoatgreSQL függvény2

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.

PoatgreSQL függvény

É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:

PoatgreSQL függvény

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:

PoatgreSQL függvény

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:

PoatgreSQL függvény

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.

PoatgreSQL függvény

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.

PoatgreSQL függvény

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:

PoatgreSQL függvény

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:

    Pozíciós jelölés Elnevezett jelölés A vegyes jelölés

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.

PoatgreSQL függvény

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 .

PoatgreSQL függvény

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 ':=' .

PoatgreSQL függvény

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 .

PoatgreSQL függvény

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.

PoatgreSQL függvény

Á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.