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 |
|
[ALI ZAMENJAJ] |
|
funkcija |
|
VRNITEV |
|
Jezik plpgsql |
|
telo_funkcije |
|
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
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
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.
In lahko prepoznamo funkcijo get_car_Price() v Funkcije seznam, kot lahko vidimo na naslednjem posnetku zaslona:
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:
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:
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.
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.
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:
Kako poklicati uporabniško definirano funkcijo
V PostgreSQL lahko uporabniško definirano funkcijo pokličemo na tri načine, ki so naslednji:
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.
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 .
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 ':=' .
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 .
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.
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.