logo

Funkcije PostgreSQL

V tem razdelku bomo razumeli delovanje Funkcije PostgreSQL, funkcija ustvarjanja in si oglejte primer v realnem času Ukaz PostgreSQL CREATE FUNCTION z uporabo različnih orodij PostgreSQL, kot je npr pgadmin4 in Lupina SQL (PSQL).

In glejte primer klica a uporabniško definirana funkcija kot naprimer položajni zapis imenovani zapis, mešani zapis.

Kaj je funkcija PostgreSQL?

Funkcija PostgreSQL ali a shranjeni postopek je niz SQL in proceduralnih ukazov, kot je npr deklaracije, dodelitve, zanke, tok nadzora itd., ki so shranjeni na strežniku baze podatkov in jih je mogoče vključiti z uporabo SQL vmesnik . In je znan tudi kot Shranjene procedure PostgreSQL .

Ustvarimo lahko funkcije PostgreSQL v jezikih serval, na primer, SQL , PL/pgSQL , C , Python itd.

Omogoča nam izvajanje operacij, ki bi na splošno zajemale različne ukaze in povratna potovanja v funkciji znotraj baze podatkov.

Kaj je ukaz PostgreSQL CREATE Function?

V PostgreSQL, če želimo podati novo uporabniško definirano funkcijo, lahko uporabimo USTVARITE FUNKCIJO ukaz.

Sintaksa ukaza PostgreSQL CREATE Function

Sintaksa za Ukaz funkcije PostgreSQL CREATE kot sledi:

 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; $$ 

V zgornji sintaksi smo uporabili naslednje parametre, kot je prikazano v spodnji tabeli:

orodje za zdravljenje gimp
Parametri Opis
ime_funkcije
  • The ime funkcije parameter se uporablja za definiranje imena funkcije.
  • Ime funkcije je zapisano za USTVARITE FUNKCIJO ključna beseda.
[ALI ZAMENJAJ]
  • Lahko uporabimo ALI ZAMENJAJTE če želimo spremeniti trenutno funkcijo.
  • In to je neobvezen parameter.
funkcija
  • Po uporabi ALI ZAMENJAJTE ključno besedo, lahko definiramo funkcijo seznam parametrov, ki so zajeti v oklepajih za Ime funkcije.
  • In funkcija lahko vsebuje nič ali več parametrov.
VRNITEV
  • Podatkovni tip lahko določimo po VRNITEV ključno besedo, ki jo bomo vrnili iz funkcije.
  • Lahko je osnovni, sestavljeni ali domenski tip ali referenca tipa stolpca tabele.
Jezik plpgsql
  • Uporablja se za določitev imena proceduralnega jezika, v katerem se funkcija izvaja.
  • In ne samo plpgsql, PostgreSQL podpira različne proceduralne jezike.
telo_funkcije
  • The telo_funkcije vsebuje izvršljive dele logike.

Primer ukaza PostgreSQL Create Function

Oglejmo si drugačen primer, da bomo razumeli delovanje Funkcija PostgreSQL CREATE ukaz.

Jemljemo avto tabela iz Javatpoint bazo podatkov, ustvarjeno v PostgreSQL Tutorial.

Ustvarjanje nove funkcije

V spodnjem ukazu ustvarjamo novo funkcijo, ki šteje Avtomobili čigav Car_Price med Cena_od in Cena_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 razdeljena na dva glavna dela, ki sta Glava in telo funkcije .

Uporabili smo naslednje parametre v Glava razdelek:

  • Predvsem določimo ime funkcije kot get_car_Price(), ki je napisano za ustvarjanje funkcije
  • Po tem, get_car_Price() funkcija vsebuje dva parametra Cena_od in Price_to, s celoštevilskim podatkovnim tipom.
  • Potem, get_car_Price() funkcija pridobi celo število, definirano s pogojem return int.
  • In na koncu smo uporabili funkcijski jezik kot plpgsql .

Uporabili smo naslednje parametre v Funkcijsko telo razdelek:

  • Uporabili smo niz kotiran v dolarju stalna ilustracija v razdelku funkcij, ki se začne z $$ in se konča z $$ .
  • Vmes $$ znak, lahko postavimo blok, ki pokriva izjavo in logiko funkcije .
  • V deklaracijskem bloku smo deklarirali spremenljivko, imenovano Car_count, ki shranjuje izbrane avtomobile iz avto
  • V telesu blokovnega odseka smo uporabili IZBERI V ukaz za izbiro cene avtomobilov, katerih vrednosti so med Cena_od in Cena_do in dajte rezultat v Car_count
  • Na koncu bloka smo uporabili VRNITEV ukaz za pridobitev

Ustvarjanje funkcije v PostgreSQL

V PostgreSQL lahko ustvarimo funkcijo na dva načina:

    PostgreSQL Ustvari funkcijo z uporabo pgAdmin Funkcija ustvarjanja PostgreSQL z lupino SQL

PostgreSQL Ustvari funkcijo z uporabo pgAdmin

Za ustvarjanje funkcije bomo sledili spodnjemu postopku pgAdmin:

Korak 1

Najprej bomo odprli najnovejšo različico pgAdmin v našem lokalnem sistemu, šli pa bomo v drevo objektov in se povezali z Javatpoint vzorčna baza podatkov, v kateri želimo ustvariti funkcijo.

2. korak

Po tem bomo s klikom na odprli orodje za poizvedovanje Poizvedovalno orodje je sledilo razdelku Orodja, kot lahko vidimo na spodnjem posnetku zaslona:

strukture, ki uporabljajo nize v c
Funkcija PoatgreSQL2

3. korak

Za ustvarjanje get_car_Price1() funkcijo, bomo uporabili zgornjo kodo v orodje za poizvedovanje in kliknite Izvedi gumb.

Po izvedbi zgornjega ukaza bomo dobili spodnje okno s sporočilom, ki prikazuje to funkcijo get_car_Price1() je bilo ustvarili uspešno v podobno bazo podatkov.

Funkcija PoatgreSQL

In lahko prepoznamo funkcijo get_car_Price() v Funkcije seznam, kot lahko vidimo na naslednjem posnetku zaslona:

Funkcija PoatgreSQL

Opomba: Če ne moremo identificirati imena funkcije, lahko z desno miškino tipko kliknemo vozlišče Funkcije in izberemo menijsko postavko Osveži ..., da oživimo seznam funkcij:

Funkcija PoatgreSQL

Ustvarjanje funkcije z lupino SQL (psql)

Za ustvarjanje tabele bomo sledili spodnjemu postopku psql :

Korak 1

  • Najprej bomo odprli psql v našem lokalnem sistemu in se bomo povezali z bazo podatkov, kjer želimo ustvariti funkcijo.
  • Ustvarili bomo tabelo v javatpoint bazo podatkov, ki smo jo ustvarili prej v vadnici PostgreSQL.

2. korak

  • Za povezavo baze podatkov bomo vnesli spodnji ukaz:
 c javatpoint 

Izhod

Po izvedbi zgornjega ukaza bomo dobili naslednji rezultat:

Funkcija PoatgreSQL

Opomba: Če v psql vnesemo podoben ukaz kot zgoraj, da ustvarimo funkcijo, bo izdal spodnjo napako, in sicer: funkcija get_car_price že obstaja z enakimi vrstami argumentov.

Funkcija PoatgreSQL

Zato za rešitev te napake ustvarimo novo funkcijo kot get_car_Price1 () v naslednjem koraku.

3. korak

pretvorba tipov in pretvorba v javi

Vnesli bomo spodnji ukaz, da ustvarimo funkcijo kot get_car_Price1 () v javatpoint zbirka podatkov.

 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$# $$; 

Izhod

Pri izvajanju zgornjega ukaza bomo dobili naslednji rezultat, ki prikazuje, da je get_car_Price_count1() funkcija je bila uspešno ustvarjena.

Funkcija PoatgreSQL

4. korak

Spodnji ukaz lahko uporabimo za seznam vseh uporabniško definiranih funkcij v obstoječi bazi podatkov.

 javatpoint=# df 

Izhod

Po izvedbi zgornjega ukaza bomo dobili spodnji rezultat:

Funkcija PoatgreSQL

Kako poklicati uporabniško definirano funkcijo

V PostgreSQL lahko uporabniško definirano funkcijo pokličemo na tri načine, ki so naslednji:

    Pozicijski zapis Imenovana notacija Mešani zapis

Klicanje funkcije s pozicijsko notacijo

Če želimo argumente opisati v podobnem vrstnem redu kot parametre, lahko pokličemo funkcijo z pozicijski zapisi pomoč.

kako je izumljena šola

Oglejmo si vzorčni primer, da bomo razumeli Pozicijski zapis dela za klic določene funkcije.

V spodnjem primeru je get_car_price() argumenti so 26000 in 70000 , kar je enakovredno Cena_od in Price_to parametri.

 Select get_car_Price(26000,70000); 

Izhod

Pri izvajanju zgornjega ukaza bomo dobili naslednji izhod, ki pridobi tiste štiri vrstice, katerih car_price je med 26000 do 70000.

Funkcija PoatgreSQL

Kadar funkcija nima skoraj nobenih parametrov, lahko pokličemo funkcijo s pomočjo položajni zapis .

Če funkcija vsebuje več parametrov, lahko uporabimo imenovani zapis za klic določene funkcije, ker z uporabo imenovani zapis bo klic funkcije naredil bolj razumljiv.

Klicanje funkcije z uporabo imenovanega zapisa

V spodnjem primeru prikazujemo delovanje klicanja get_car_Price() funkcija z uporabo imenovanega zapisa:

 select get_car_Price( Price_from => 26000, Price_to => 70000 ); 

Izhod

Pri izvedbi zgornjega ukaza bomo dobili naslednji izhod, ki prikaže štiri vrstice glede na zgornji obseg car_price .

Funkcija PoatgreSQL

V prej omenjenem zapisu smo uporabili => razlikovati argumente ime in vrednost .

PostgreSQL dovoljuje ustvarjeno starejšo sintakso na := za združljivost za nazaj , kot lahko vidimo v naslednjem ukazu:

 select get_car_Price( Price_from := 26000, Price_to := 70000 ); 

Izhod

Po izvedbi zgornjega ukaza bomo dobili podoben rezultat v primerjavi z rezultatom zgornjega ukaza, kjer uporabimo ' =>' namesto ':=' .

Funkcija PoatgreSQL

Klicanje funkcije z uporabo mešanega zapisa

Gre za združevanje položajno in imenovano notacije.

Oglejmo si vzorčni primer za razumevanje delovanja Klicanje funkcije z uporabo mešanega zapisa.

V mešani zapis , ne moremo uporabiti imenovani Parametri prej pozicijski parametri .

Na primer:

V spodnjem ukazu bomo uporabili imenovan pojem za Cena_od parameter kot Cena_od=>26000, medtem ko za Price_to smo uporabili parameter položajni pojem kot 70000 , kot lahko vidimo v spodnjem ukazu:

np.združiti
 select get_car_Price(Price_from=>26000,70000); 

Izhod

Po izvedbi zgornjega ukaza PostgreSQL sproži napako, ki pravi, da je pozicijski argument ne more slediti imenovanemu argumentu .

Funkcija PoatgreSQL

Za odpravo zgornje napake uporabljamo položajni in imenovani zapis za get_car_price() funkcijo, kjer je 26000 se uporablja za predstavitev Pozicijski zapis; po drugi strani, Cena_do=>70000 se uporablja za predstavitev imenovani zapis :

 select get_car_Price(26000,Price_to=>70000); 

Izhod

Po izvedbi zgornjega ukaza bomo dobili spodnji izhod, ki vrne tiste avtomobile, katerih car_price je med 26000 in 70000.

Funkcija PoatgreSQL

Pregled

V Funkcija PostgreSQL razdelku, smo se naučili naslednje teme:

  • Uporabili smo Funkcija CREATE ukaz za ustvarjanje uporabniško definirane funkcije za določeno tabelo.
  • Razumeli smo postopek klic uporabniško definirane funkcije s pomočjo različnih zapisov kot npr Pozicijski, imenovani in mešani.