logo

PostgreSQL funkcije

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
  • The naziv funkcije Parametar se koristi za definiranje naziva funkcije.
  • Naziv funkcije piše se iza STVORI FUNKCIJU ključna riječ.
[ILI ZAMIJENITE]
  • Možemo koristiti ILI ZAMIJENITE ključna riječ ako želimo promijeniti trenutnu funkciju.
  • I to je izborni parametar.
Funkcija
  • Nakon korištenja ILI ZAMIJENITE ključnu riječ, možemo definirati funkcija popis parametara koji su obuhvaćeni u zagradama nakon Naziv funkcije.
  • I funkcija može sadržavati nula ili nekoliko parametara.
POVRATAK
  • Tip podataka možemo definirati nakon POVRATAK ključnu riječ, koju ćemo vratiti iz funkcije.
  • Može biti osnovni, kompozitni ili domenski tip ili referenca tipa stupca tablice.
Jezik plpgsql
  • Koristi se za definiranje naziva proceduralnog jezika u kojem se funkcija izvršava.
  • I ne samo plpgsql, PostgreSQL podržava različite proceduralne jezike.
Tijelo_funkcije
  • The tijelo_funkcije sadrži izvršne dijelove logike.

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 PostgreSQL Stvori funkciju koristeći SQL Shell

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

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.

PoatgreSQL funkcija

I možemo identificirati funkciju get_car_Price() u Funkcije popis kao što možemo vidjeti na sljedećoj snimci zaslona:

PoatgreSQL funkcija

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:

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

PoatgreSQL funkcija

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.

PoatgreSQL funkcija

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.

PoatgreSQL funkcija

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:

PoatgreSQL funkcija

Kako pozvati korisnički definiranu funkciju

U PostgreSQL-u možemo pozvati korisnički definiranu funkciju na tri načina, a to su:

    Pozicijski zapis Imenovana notacija Mješoviti zapis

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.

PoatgreSQL funkcija

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 .

PoatgreSQL funkcija

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

PoatgreSQL funkcija

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 .

PoatgreSQL funkcija

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.

PoatgreSQL funkcija

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.