V tejto časti porozumieme fungovaniu PostgreSQL funkcie, vytvoriť funkciu a pozrite si príklad v reálnom čase Príkaz PostgreSQL CREATE FUNCTION pomocou rôznych nástrojov PostgreSQL ako napr pgadmin4 a SQL shell (PSQL).
A pozrite si príklad volania a užívateľsky definovaná funkcia ako napr pozičná notácia pomenovaná notácia, zmiešaná notácia.
Čo je funkcia PostgreSQL?
Funkcia PostgreSQL alebo a uložená procedúra je súbor SQL a procedurálnych príkazov ako napr deklarácie, priradenia, cykly, tok riadenia atď. uložené na databázovom serveri a môžu byť zahrnuté pomocou SQL rozhranie . A je tiež známy ako PostgreSQL uložené procedúry .
Funkcie PostgreSQL môžeme vytvárať v servisných jazykoch, napr. SQL , PL/pgSQL , C , Python atď.
Umožňuje nám vykonávať operácie, ktoré by vo všeobecnosti vyžadovali rôzne príkazy a spiatočné cesty vo funkcii v rámci databázy.
Čo je príkaz PostgreSQL CREATE Function?
V PostgreSQL, ak chceme špecifikovať novú užívateľom definovanú funkciu, môžeme použiť VYTVORIŤ FUNKCIU príkaz.
Syntax príkazu PostgreSQL CREATE Function
Syntax pre Príkaz funkcie PostgreSQL CREATE je nasledujúca:
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; $$
Vo vyššie uvedenej syntaxi sme použili nasledujúce parametre, ako je uvedené v tabuľke nižšie:
nerovná sa mysql
Parametre | Popis |
---|---|
názov_funkcie |
|
[ALEBO VYMENIŤ] |
|
Funkcia |
|
NÁVRAT |
|
Jazyk plpgsql |
|
Function_body |
|
Príklad príkazu PostgreSQL Create Function
Pozrime sa na iný príklad, aby sme pochopili fungovanie PostgreSQL funkcia CREATE príkaz.
Berieme Auto tabuľky z Javatpoint databázy, vytvorenej v PostgreSQL Tutorial.
Vytvorenie novej funkcie
V nižšie uvedenom príkaze vytvárame novú funkciu, ktorá počíta Autá ktorých Car_Price medzi Cena_od a Cena_do parametre:
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; $$;
The get_car_Price funkcia je rozdelená na dve hlavné časti, ktorými sú Hlavička a telo funkcie .
Použili sme nasledujúce parametre v Hlavička sekcia:
- Primárne zadávame názov funkcie ako get_car_Price(), ktorý sa píše po vytvoriť funkciu
- Po tom, get_car_Price() funkcia obsahuje dva parametre Cena_od a Price_to, s celočíselným dátovým typom.
- Potom get_car_Price() funkcia získa celé číslo definované podmienkou return int.
- A nakoniec sme použili funkčný jazyk ako plpgsql .
Použili sme nasledujúce parametre v Telo funkcie sekcia:
- Použili sme reťazec kótovaný v dolároch konštantná ilustrácia v sekcii funkcií, ktorá začína $$ a končí s $$ .
- Medzi $$ znamenie, môžeme umiestniť blok, ktorý kryje vyhlásenie a logika funkcie .
- V bloku deklarácií sme deklarovali premennú tzv počet áut, ktorá ukladá autá vybrané z Auto
- V tele sekcie bloku sme použili VYBERTE DO príkaz na výber Ceny áut, ktorých hodnoty sú medzi Cena_od a Cena_do a dať výstup na Počet áut
- Na konci bloku sme použili NÁVRAT príkaz na získanie
Vytvorenie funkcie v PostgreSQL
V PostgreSQL môžeme vytvoriť funkciu dvoma spôsobmi:
Vytvorenie funkcie PostgreSQL pomocou pgAdmin
Na vytvorenie funkcie budeme postupovať podľa nižšie uvedeného postupu pgAdmin:
Krok 1
Najprv otvoríme najnovšiu verziu pgAdmin v našom lokálnom systéme a prejdeme do stromu objektov a pripojíme sa k Javatpoint vzorová databáza, v ktorej chceme vytvoriť funkciu.
Krok 2
Potom kliknutím na otvoríme dopytovací nástroj Dopytový nástroj nasledoval sekciu Nástroje, ako môžeme vidieť na obrázku nižšie:
reťazec v int
Krok 3
Na vytvorenie get_car_Price1() funkciu, použijeme vyššie uvedený kód v dotazovací nástroj a kliknite na Vykonať tlačidlo.
Po implementácii vyššie uvedeného príkazu dostaneme nižšie uvedené okno správy zobrazujúce túto funkciu get_car_Price1() bol vytvorené úspešne do podobnej databázy.
A môžeme identifikovať funkciu get_car_Price() v Funkcie zoznam, ako môžeme vidieť na nasledujúcej snímke obrazovky:
Poznámka: Ak nevieme identifikovať názov funkcie, môžeme kliknúť pravým tlačidlom myši na uzol Funkcie a vybrať položku ponuky Obnoviť..., čím zoznam funkcií oživíme:
Vytvorenie funkcie pomocou SQL Shell (psql)
Na vytvorenie tabuľky budeme postupovať podľa nižšie uvedeného postupu psql :
Krok 1
- Najprv otvoríme psql v našom lokálnom systéme a pripojíme sa k databáze, kde chceme vytvoriť funkciu.
- Vytvoríme tabuľku v javatpoint databázu, ktorú sme vytvorili skôr v návode PostgreSQL.
Krok 2
- Pre pripojenie databázy zadáme nasledujúci príkaz:
c javatpoint
Výkon
Po vykonaní vyššie uvedeného príkazu dostaneme nasledujúci výstup:
Poznámka: Ak na vytvorenie funkcie zadáme podobný príkaz ako vyššie, v psql sa zobrazí chyba uvedená nižšie, ktorá je: funkcia get_car_price už existuje s rovnakými typmi argumentov.
Preto, aby sme túto chybu vyriešili, vytvoríme novú funkciu ako get_car_Price1 () v ďalšom kroku.
Krok 3
typ konverzie a casting v jave
Zadáme nižšie uvedený príkaz na vytvorenie funkcie ako get_car_Price1 () v javatpoint databázy.
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$# $$;
Výkon
Pri implementácii vyššie uvedeného príkazu dostaneme nasledujúci výstup, ktorý zobrazuje, že get_car_Price_count1() funkcia bola úspešne vytvorená.
Krok 4
Pomocou nižšie uvedeného príkazu môžeme vypísať všetky užívateľom definované funkcie v existujúcej databáze.
javatpoint=# df
Výkon
Po vykonaní vyššie uvedeného príkazu dostaneme nasledujúci výstup:
Ako zavolať používateľom definovanú funkciu
V PostgreSQL môžeme volať užívateľom definovanú funkciu tromi spôsobmi, ktoré sú nasledovné:
Volanie funkcie pomocou pozičného zápisu
Ak chceme argumenty opísať v podobnom poradí ako parametre, môžeme zavolať funkciu s pozičný zápis Pomoc.
java reťazec do poľa
Pozrime sa na vzorový príklad, aby sme pochopili Pozičná notácia pracuje na volaní konkrétnej funkcie.
V nižšie uvedenom príklade je get_car_price() argumenty sú 26 000 a 70 000 , čo je ekvivalentné s Cena_od a Cena_do parametre.
Select get_car_Price(26000,70000);
Výkon
Pri implementácii vyššie uvedeného príkazu dostaneme nasledujúci výstup, ktorý získa tie štyri riadky, ktorých car_price je medzi 26 000 až 70 000.
Keď funkcia nemá takmer žiadne parametre, môžeme zavolať funkciu pomocou pozičný zápis .
Ak funkcia obsahuje viacero parametrov, môžeme použiť pomenovaná notácia zavolať konkrétnu funkciu, pretože pomocou pomenovaná notácia bude volanie funkcie zrozumiteľnejšie.
Volanie funkcie pomocou pomenovaného zápisu
V nižšie uvedenom príklade zobrazujeme fungovanie volania get_car_Price() funkcia pomocou pomenovaného zápisu:
select get_car_Price( Price_from => 26000, Price_to => 70000 );
Výkon
Po vykonaní vyššie uvedeného príkazu dostaneme nasledujúci výstup, ktorý zobrazuje štyri riadky na základe vyššie uvedeného rozsahu car_price .
Vo vyššie uvedenom zápise sme použili => na rozlíšenie argumentov meno a hodnotu .
PostgreSQL umožňuje vytvorenú staršiu syntax dňa := pre spätná kompatibilita , ako môžeme vidieť v nasledujúcom príkaze:
select get_car_Price( Price_from := 26000, Price_to := 70000 );
Výkon
Po vykonaní vyššie uvedeného príkazu dostaneme podobný výstup ako v porovnaní s výsledkom vyššie uvedeného príkazu, kde použijeme ' =>' namiesto ':=' .
Volanie funkcie pomocou zmiešaného zápisu
Ide o zoskupenie polohové a pomenované zápisy.
Pozrime sa na vzorový príklad, aby sme pochopili fungovanie Volanie funkcie pomocou zmiešaného zápisu.
V zmiešaný zápis , nemôžeme použiť s názvom Parametre predtým pozičné parametre .
Napríklad:
V nižšie uvedenom príkaze použijeme pomenovaná predstava pre Cena_od parameter ako Cena_od=>26 000, keďže pre Cena_do parameter sme použili pozičný pojem ako 70 000 , ako môžeme vidieť v nižšie uvedenom príkaze:
ukazovatele v c
select get_car_Price(Price_from=>26000,70000);
Výkon
Po vykonaní vyššie uvedeného príkazu PostgreSQL vyvolá chybu, ktorá hovorí, že pozičný argument nemôže nasledovať po pomenovanom argumente .
Na vyriešenie vyššie uvedenej chyby používame polohová a pomenovaná notácia pre get_car_price() funkcia, kde 26 000 sa používa na reprezentáciu Pozičná notácia; na druhej strane, Price_to=>70 000 sa používa na reprezentáciu pomenovaná notácia :
select get_car_Price(26000,Price_to=>70000);
Výkon
Po vykonaní vyššie uvedeného príkazu dostaneme výstup uvedený nižšie, ktorý vráti tie autá, ktorých car_price je medzi 26 000 až 70 000.
Prehľad
V Funkcia PostgreSQL časti sme sa naučili tieto témy:
- Použili sme Funkcia CREATE príkaz na vytvorenie užívateľom definovanej funkcie pre konkrétnu tabuľku.
- Pochopili sme proces volanie užívateľom definovanej funkcie pomocou rôznych zápisov ako napr Pozičné, pomenované a zmiešané.