U ovom odjeljku ćemo razumjeti rad PostgreSQL funkcije, funkcija za stvaranje i pogledajte primjer u stvarnom vremenu PostgreSQL naredba CREATE FUNCTION koristeći različite alate PostgreSQL-a kao što su pgadmin4 i SQL ljuska (PSQL).
I pogledajte primjer pozivanja a korisnički definirana funkcija kao npr položajni zapis imenovani zapis, mješoviti zapis.
Što je PostgreSQL funkcija?
PostgreSQL funkcija ili a pohranjeni postupak je skup SQL i proceduralnih naredbi kao što su deklaracije, dodjele, petlje, tijek kontrole itd. pohranjeni na poslužitelju baze podataka i mogu se uključiti pomoću SQL sučelje . A poznat je i kao PostgreSQL pohranjene procedure .
Možemo kreirati PostgreSQL funkcije u serval jezicima, na primjer, SQL , PL/pgSQL , C , Piton itd.
Omogućuje nam izvođenje operacija, koje bi općenito uzimale različite naredbe i kružna putovanja u funkciji unutar baze podataka.
Što je naredba PostgreSQL CREATE Function?
U PostgreSQL-u, ako želimo navesti novu korisnički definiranu funkciju, možemo koristiti STVORI FUNKCIJU naredba.
Sintaksa naredbe PostgreSQL CREATE Function
Sintaksa za Naredba PostgreSQL CREATE Function je kako slijedi:
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; $$
U gornjoj sintaksi koristili smo sljedeće parametre, kao što je prikazano u tablici u nastavku:
niz znakova java
Parametri | Opis |
---|---|
naziv_funkcije |
|
[ILI ZAMIJENITE] |
|
Funkcija |
|
POVRATAK |
|
Jezik plpgsql |
|
Tijelo_funkcije |
|
Primjer naredbe PostgreSQL Create Function
Pogledajmo drugačiji primjer kako bismo razumjeli rad Funkcija PostgreSQL CREATE naredba.
Mi preuzimamo Automobil stol iz Javatpoint baza podataka, stvorena u Vodiču za PostgreSQL.
Stvaranje nove funkcije
U donjoj naredbi stvaramo novu funkciju koja broji Automobili čiji Cijena_automobila između Cijena_od i Cijena_do parametri:
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 funkcija je podijeljena u dva glavna odjeljka, koji su Zaglavlje i tijelo funkcije .
Koristili smo sljedeće parametre u Zaglavlje odjeljak:
- Prije svega, navodimo naziv funkcije kao get_car_Price(), koji je napisano nakon stvoriti funkciju
- Nakon toga, get_car_Price() funkcija sadrži dva parametra Cijena_od i cijena_za, ima cjelobrojni tip podataka.
- Onda get_car_Price() funkcija dohvaća cijeli broj definiran uvjetom return int.
- I na kraju, koristili smo funkcijski jezik kao plpgsql .
Koristili smo sljedeće parametre u Funkcija Tijelo odjeljak:
- Koristili smo string s kotiranim dolarima stalna ilustracija u funkcijskom odjeljku, koji počinje s $$ a završava s $$ .
- Između $$ znak, možemo postaviti blok, koji pokriva deklaracija i logika funkcije .
- U bloku za deklaraciju deklarirali smo varijablu tzv Car_count, koji pohranjuje automobile odabrane iz Automobil
- U tijelu blok odjeljka upotrijebili smo ODABERI U naredba za odabir cijene automobila čije su vrijednosti između Cijena_od i Cijena_do i dati izlaz na Broj_automobila
- Na kraju bloka upotrijebili smo POVRATAK naredba za dobivanje
Stvaranje funkcije u PostgreSQL-u
U PostgreSQL-u možemo kreirati funkciju na dva načina:
PostgreSQL Stvori funkciju koristeći pgAdmin
Slijedit ćemo postupak u nastavku za stvaranje funkcije pgAdmin:
Korak 1
Prvo ćemo otvoriti najnoviju verziju pgAdmin u našem lokalnom sustavu, a mi ćemo otići do stabla objekata i spojiti se na Javatpoint uzorak baze podataka u kojoj želimo kreirati funkciju.
Korak 2
Nakon toga otvorit ćemo alat za upite klikom na Alat za upite prati odjeljak Alati, kao što možemo vidjeti na slici ispod:
java uhvati pokušaj
Korak 3
Za stvaranje get_car_Price1() funkciju, koristit ćemo gornji kod u alat za upite i kliknite na Izvršiti dugme.
Nakon implementacije gornje naredbe, dobit ćemo donji prozor s porukom koji prikazuje tu funkciju get_car_Price1() je bio stvorio uspješno u sličnu bazu podataka.
I možemo identificirati funkciju get_car_Price() u Funkcije popis kao što možemo vidjeti na sljedećoj snimci zaslona:
Napomena: Ako ne možemo identificirati naziv funkcije, možemo desnom tipkom miša kliknuti čvor Funkcije i odabrati stavku izbornika Osvježi... da oživimo popis funkcija:
Stvaranje funkcije pomoću SQL Shell(psql)
Slijedit ćemo postupak u nastavku za izradu tablice psql :
Korak 1
- Prvo ćemo otvoriti psql u našem lokalnom sustavu, a mi ćemo se povezati s bazom podataka u kojoj želimo stvoriti funkciju.
- Napravit ćemo tablicu u javatpoint bazu podataka koju smo izradili ranije u uputama za PostgreSQL.
Korak 2
- Za povezivanje baze podataka unijet ćemo naredbu ispod:
c javatpoint
Izlaz
Nakon izvršenja gornje naredbe, dobit ćemo sljedeći izlaz:
Napomena: Ako unesemo sličnu naredbu kao gore za stvaranje funkcije, u psql-u, izdat će donju pogrešku koja glasi: funkcija get_car_price već postoji s istim tipovima argumenata.
Stoga, da bismo riješili ovu pogrešku, stvaramo novu funkciju kao get_car_Price1 () u sljedećem koraku.
Korak 3
java pretvara cijeli broj u niz
Unesite donju naredbu za stvaranje funkcije kao get_car_Price1 () u javatpoint baza podataka.
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$# $$;
Izlaz
Dobit ćemo sljedeći izlaz pri implementaciji gornje naredbe, koji prikazuje da je get_car_Price_count1() funkcija je uspješno kreirana.
Korak 4
Možemo koristiti donju naredbu za popis svih korisnički definiranih funkcija u postojećoj bazi podataka.
javatpoint=# df
Izlaz
Nakon izvršenja gornje naredbe, dobit ćemo donji izlaz:
Kako pozvati korisnički definiranu funkciju
U PostgreSQL-u možemo pozvati korisnički definiranu funkciju na tri načina, a to su:
Pozivanje funkcije pomoću pozicijskog zapisa
Ako želimo opisati argumente sličnim redoslijedom kao parametre, možemo pozvati funkciju s položajne oznake Pomozite.
regex java
Pogledajmo ogledni primjer da bismo razumjeli Pozicijska notacija radeći na pozivanju određene funkcije.
U donjem primjeru, get_car_price() argumenti su 26000 i 70000 , što je ekvivalentno Cijena_od i Cijena_do parametri.
Select get_car_Price(26000,70000);
Izlaz
Dobit ćemo sljedeći izlaz pri implementaciji gornje naredbe, koja dohvaća ona četiri retka čiji cijena_automobila je između 26000 do 70000.
Kada funkcija jedva da ima parametre, možemo pozvati funkciju uz pomoć položajni zapis .
Ako funkcija sadrži nekoliko parametara, možemo koristiti imenovani zapis za pozivanje određene funkcije jer korištenje imenovani zapis učinit će poziv funkcije razumljivijim.
Pozivanje funkcije pomoću imenovane notacije
U donjem primjeru prikazujemo rad pozivanja get_car_Price() funkcija koja koristi imenovani zapis:
select get_car_Price( Price_from => 26000, Price_to => 70000 );
Izlaz
Dobit ćemo sljedeći izlaz prilikom izvršavanja gornje naredbe, koja prikazuje četiri retka na temelju gornjeg raspona cijena_automobila .
U prethodno spomenutoj notaciji koristili smo => razlikovati argumente ime i vrijednost .
PostgreSQL dopušta stvorenu stariju sintaksu na := za povratna kompatibilnost , kao što možemo vidjeti u sljedećoj naredbi:
select get_car_Price( Price_from := 26000, Price_to := 70000 );
Izlaz
Nakon izvršavanja gornje naredbe, dobit ćemo sličan rezultat u usporedbi s rezultatom gornje naredbe gdje koristimo ' =>' umjesto ':=' .
Pozivanje funkcije korištenjem mješovite notacije
To je grupiranje položajni i imenovani notacije.
Pogledajmo primjer primjera kako bismo razumjeli rad Pozivanje funkcije korištenjem mješovite notacije.
u mješoviti zapis , ne možemo koristiti pod nazivom Parametri prije pozicijski parametri .
Na primjer:
U donjoj naredbi koristit ćemo imenovani pojam za Cijena_od parametar kao Cijena_od=>26000, dok je za Cijena_do parametar, koristili smo položajni pojam kao 70000 , kao što možemo vidjeti u naredbi ispod:
primjeri operativnih sustava
select get_car_Price(Price_from=>26000,70000);
Izlaz
Nakon izvršenja gornje naredbe, PostgreSQL javlja pogrešku koja kaže da je položajni argument ne može slijediti imenovani argument .
Da bismo riješili gornju pogrešku, koristimo položajni i imenovani zapis za get_car_price() funkcija gdje je 26000 koristi se za predstavljanje Pozicijski zapis; s druge strane, Cijena_do=>70000 koristi se za predstavljanje imenovani zapis :
select get_car_Price(26000,Price_to=>70000);
Izlaz
Nakon izvršenja gornje naredbe, dobit ćemo donji izlaz, koji vraća one automobile čiji cijena_automobila je između 26000 i 70000.
Pregled
u PostgreSQL funkcija odjeljak naučili smo sljedeće teme:
- Koristili smo Funkcija CREATE naredba za stvaranje korisnički definirane funkcije za određenu tablicu.
- Razumjeli smo proces pozivanje korisnički definirane funkcije uz pomoć različitih notacija kao što su Pozicijski, imenovani i mješoviti.