logo

PostgreSQL funkcie

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
  • The názov funkcie parameter sa používa na definovanie názvu funkcie.
  • Názov funkcie sa píše za VYTVORIŤ FUNKCIU kľúčové slovo.
[ALEBO VYMENIŤ]
  • Môžeme použiť ALEBO VYMENIŤ kľúčové slovo, ak chceme zmeniť aktuálnu funkciu.
  • A je to voliteľný parameter.
Funkcia
  • Po použití ALEBO VYMENIŤ kľúčové slovo, môžeme definovať funkciu zoznam parametrov, ktoré sú uvedené v zátvorkách za Názov funkcie.
  • A funkcia môže obsahovať nula alebo niekoľko parametrov.
NÁVRAT
  • Dátový typ môžeme definovať za NÁVRAT kľúčové slovo, ktoré sa chystáme vrátiť z funkcie.
  • Môže to byť základný, zložený alebo doménový typ alebo odkaz na typ stĺpca tabuľky.
Jazyk plpgsql
  • Používa sa na definovanie názvu procedurálneho jazyka, v ktorom sa funkcia vykonáva.
  • A nie len tak plpgsql, PostgreSQL podporuje rôzne procedurálne jazyky.
Function_body
  • The function_body obsahuje spustiteľné časti logiky.

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 PostgreSQL Create Function pomocou SQL Shell

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
Funkcia PoatgreSQL 2

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.

Funkcia PoatgreSQL

A môžeme identifikovať funkciu get_car_Price() v Funkcie zoznam, ako môžeme vidieť na nasledujúcej snímke obrazovky:

Funkcia PoatgreSQL

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:

Funkcia PoatgreSQL

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:

Funkcia PoatgreSQL

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.

Funkcia PoatgreSQL

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

Funkcia PoatgreSQL

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:

Funkcia PoatgreSQL

Ako zavolať používateľom definovanú funkciu

V PostgreSQL môžeme volať užívateľom definovanú funkciu tromi spôsobmi, ktoré sú nasledovné:

    Pozičná notácia Pomenovaný zápis Zmiešaný zápis

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.

Funkcia PoatgreSQL

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 .

Funkcia PoatgreSQL

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

Funkcia PoatgreSQL

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 .

Funkcia PoatgreSQL

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.

Funkcia PoatgreSQL

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