Šiame skyriuje mes suprasime, kaip veikia PostgreSQL funkcijos, kūrimo funkcija komandą ir žiūrėkite realiojo laiko pavyzdį PostgreSQL CREATE FUNCTION komanda naudojant įvairius PostgreSQL įrankius, tokius kaip pgadmin4 ir SQL apvalkalas (PSQL).
Ir žiūrėkite skambinimo a pavyzdį vartotojo apibrėžta funkcija toks kaip pozicinis žymėjimas, pavadintas notation, mišrusis žymėjimas.
Kas yra PostgreSQL funkcija?
PostgreSQL funkcija arba a saugoma procedūra yra SQL ir procedūrinių komandų, tokių kaip deklaracijos, priskyrimai, kilpos, valdymo srautas ir tt saugomi duomenų bazės serveryje ir gali būti įtraukti naudojant SQL sąsaja . Ir tai taip pat žinoma kaip PostgreSQL saugomos procedūros .
Pavyzdžiui, galime sukurti PostgreSQL funkcijas servelinėmis kalbomis, SQL , PL/pgSQL , C , Python ir tt
Tai leidžia mums atlikti operacijas, kurios paprastai vykdo įvairias komandas ir keliauja pirmyn ir atgal duomenų bazės funkcijoje.
Kas yra „PostgreSQL CREATE“ funkcijos komanda?
PostgreSQL, jei norime nurodyti naują vartotojo apibrėžtą funkciją, galime naudoti KURTI FUNKCIJĄ komandą.
Funkcijos PostgreSQL CREATE sintaksė
Sintaksė, skirta PostgreSQL CREATE funkcijos komanda yra taip:
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; $$
Aukščiau pateiktoje sintaksėje naudojome šiuos parametrus, kaip parodyta toliau esančioje lentelėje:
kaip blokuoti youtube skelbimus android
Parametrai | apibūdinimas |
---|---|
funkcijos_pavadinimas |
|
[ARBA PAKEISTI] |
|
Funkcija |
|
GRĄŽINTI |
|
Kalba plpgsql |
|
Function_body |
|
„PostgreSQL“ kūrimo funkcijos komandos pavyzdys
Pažiūrėkime kitą pavyzdį, kad suprastume, kaip veikia PostgreSQL CREATE funkcija komandą.
Mes priimame Automobilis stalas iš Javapoint duomenų bazė, sukurta PostgreSQL mokymo programoje.
Naujos funkcijos kūrimas
Žemiau esančioje komandoje sukuriame naują funkciją, kuri skaičiuoja Automobiliai kurių Automobilio_kaina tarp Kaina_nuo ir Kaina_iki parametrai:
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 yra padalinta į dvi pagrindines dalis, kurios yra Antraštė ir funkcijos turinys .
Mes naudojome šiuos parametrus Antraštė skyrius:
- Pirmiausia nurodome funkcijos pavadinimą kaip get_car_Price(), kuri parašyta po sukurti funkciją
- Po to, get_car_Price () funkciją sudaro du parametrai Kaina_nuo ir Kaina iki, turintis sveikųjų skaičių duomenų tipą.
- Tada get_car_Price () funkcija nuskaito sveikąjį skaičių, apibrėžtą grąžinimo int sąlyga.
- Ir pabaigoje mes panaudojome funkcijų kalbą kaip plpgsql .
Mes naudojome šiuos parametrus Funkcinis kūnas skyrius:
- Mes panaudojome doleriais kotiruojama eilutė nuolatinė iliustracija funkcijų skyriuje, kuris prasideda $$ ir baigiasi $$ .
- Tarp $$ ženklas, galime įdėti bloką, kuris uždengia deklaraciją ir funkcijos logika .
- Deklaracijos bloke mes paskelbėme kintamąjį, vadinamą Car_count, kuriame saugomi automobiliai, atrinkti iš Automobilis
- Bloko dalies turinyje naudojome PASIRINKTI Į komanda, kad pasirinktumėte Kainą automobilių, kurių vertės yra tarp Kaina_nuo ir Kaina_iki ir pateikite išvestį Automobilių_skaičius
- Bloko pabaigoje mes panaudojome GRĄŽINTI komandą gauti
Funkcijos kūrimas naudojant PostgreSQL
„PostgreSQL“ funkciją galime sukurti dviem būdais:
PostgreSQL Sukurkite funkciją naudodami pgAdmin
Norėdami sukurti funkciją, atliksime toliau pateiktą procesą pgAdminas:
1 žingsnis
Pirmiausia atidarysime naujausią versiją pgAdminas vietinėje sistemoje, mes eisime į objektų medį ir prisijungsime prie Javapoint pavyzdinė duomenų bazė, kurioje norime sukurti funkciją.
2 žingsnis
Po to atidarysime užklausos įrankį spustelėdami Užklausos įrankis seka skyrių Įrankiai, kaip matome žemiau esančioje ekrano kopijoje:
java dizaino modelis
3 veiksmas
Norėdami sukurti get_car_Price1() funkciją, naudosime aukščiau pateiktą kodą užklausos įrankis ir spustelėkite Vykdyti mygtuką.
Įgyvendinę aukščiau pateiktą komandą, gausime žemiau esantį pranešimo langą, kuriame bus rodoma ši funkcija get_car_Price1() buvo sukurtas sėkmingai patenka į panašią duomenų bazę.
Ir mes galime nustatyti funkciją get_car_Price () viduje Funkcijos sąrašą, kaip matome šioje ekrano kopijoje:
Pastaba: jei negalime nustatyti funkcijos pavadinimo, galime dešiniuoju pelės mygtuku spustelėti mazgą Funkcijos ir pasirinkti Atnaujinti... meniu elementą, kad atgaivintume funkcijų sąrašą:
Funkcijos kūrimas naudojant SQL Shell (psql)
Norėdami sukurti lentelę, atliksime toliau pateiktą procesą psql :
1 žingsnis
- Pirmiausia atidarysime psql vietinėje sistemoje ir prisijungsime prie duomenų bazės, kurioje norime sukurti funkciją.
- Mes sukursime lentelę javatpoint duomenų bazę, kurią sukūrėme anksčiau „PostgreSQL“ mokymo programoje.
2 žingsnis
- Norėdami prijungti duomenų bazę, įvesime žemiau esančią komandą:
c javatpoint
Išvestis
Įvykdę aukščiau pateiktą komandą, gausime tokią išvestį:
Pastaba: jei įvesime panašią komandą, kaip nurodyta pirmiau, norėdami sukurti funkciją, psql, ji išduos toliau pateiktą klaidą, kuri yra: funkcija get_car_price jau egzistuoja su tais pačiais argumentų tipais.
Todėl, norėdami išspręsti šią klaidą, sukuriame naują funkciją kaip get_car_Price1 () kitame žingsnyje.
3 veiksmas
java char į eilutę
Norėdami sukurti funkciją, įvesime žemiau esančią komandą kaip get_car_Price1 () viduje javatpoint duomenų bazėje.
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$# $$;
Išvestis
Įgyvendindami aukščiau pateiktą komandą gausime šią išvestį, kuri rodo, kad get_car_Price_count1() funkcija sėkmingai sukurta.
4 veiksmas
Mes galime naudoti toliau pateiktą komandą, kad pateiktume visas vartotojo nustatytas funkcijas esamoje duomenų bazėje.
javatpoint=# df
Išvestis
Įvykdę aukščiau pateiktą komandą, gausime žemiau pateiktą išvestį:
Kaip iškviesti vartotojo nustatytą funkciją
„PostgreSQL“ vartotojo apibrėžtą funkciją galime iškviesti trimis būdais, kurie yra tokie:
Funkcijos iškvietimas naudojant padėties žymėjimą
Jei norime apibūdinti argumentus panašia tvarka kaip parametrus, galime iškviesti funkciją su padėties žymėjimas padėti.
nuorodų duomenų tipai java
Pažiūrėkime pavyzdį, kad suprastume Padėties žymėjimas dirba tam, kad iškviestų tam tikrą funkciją.
Žemiau pateiktame pavyzdyje gauti_auto_kaina() argumentai yra 26 000 ir 70 000 , kuris yra lygiavertis Kaina_nuo ir Kaina iki parametrus.
Select get_car_Price(26000,70000);
Išvestis
Įgyvendindami aukščiau pateiktą komandą gausime tokią išvestį, kuri nuskaito tas keturias eilutes, kurių automobilio_kaina yra tarp nuo 26 000 iki 70 000.
Kai funkcija beveik neturi jokių parametrų, funkciją galime iškviesti naudodami padėties žymėjimas .
Jei funkcijoje yra keli parametrai, galime naudoti pavadintas užrašas iškviesti konkrečią funkciją, nes naudojant pavadintas užrašas padarys funkcijos iškvietimą suprantamesnį.
Funkcijos iškvietimas naudojant pavadintą žymėjimą
Žemiau esančiame pavyzdyje rodome skambinimo veikimą get_car_Price () funkcija naudojant pavadintą žymėjimą:
select get_car_Price( Price_from => 26000, Price_to => 70000 );
Išvestis
Vykdydami aukščiau pateiktą komandą gausime šią išvestį, kuri rodo keturias eilutes pagal aukščiau pateiktą diapazoną automobilio_kaina .
Anksčiau minėtame žymėjime naudojome => atskirti argumentus vardą ir vertę .
PostgreSQL leidžia sukurti senesnę sintaksę ant := už atgalinis suderinamumas , kaip matome šioje komandoje:
select get_car_Price( Price_from := 26000, Price_to := 70000 );
Išvestis
Įvykdę aukščiau pateiktą komandą, gausime panašų išvestį, palyginti su aukščiau pateiktos komandos rezultatu, kai naudosime =>' vietoj ':=' .
Funkcijos iškvietimas naudojant mišrią žymėjimą
Tai yra grupavimas pozicinis ir pavadintas užrašai.
Pažiūrėkime pavyzdį, kad suprastume, kaip veikia Funkcijos iškvietimas naudojant mišrią žymėjimą.
Viduje mišrus užrašas , negalime naudoti pavadintas Parametrai prieš padėties parametrai .
Pavyzdžiui:
Žemiau esančioje komandoje naudosime pavadinta sąvoka dėl Kaina_nuo parametras kaip Kaina_nuo =>26 000, kadangi už Kaina iki parametrą, mes panaudojome pozicinė sąvoka kaip 70 000 , kaip matome toliau pateiktoje komandoje:
vikas divyakirti
select get_car_Price(Price_from=>26000,70000);
Išvestis
Įvykdžius aukščiau pateiktą komandą, PostgreSQL iškelia klaidą, kuri sako, kad pozicinis argumentas negali sekti įvardyto argumento .
Norėdami išspręsti aukščiau pateiktą klaidą, naudojame pozicinis ir vardinis žymėjimas dėl the get_car_price () funkcija, kurioje 26 000 naudojamas atstovauti Padėties žymėjimas; iš kitos pusės, Kaina iki => 70 000 naudojamas atstovauti pavadintas užrašas :
select get_car_Price(26000,Price_to=>70000);
Išvestis
Įvykdę aukščiau pateiktą komandą, gausime žemiau pateiktą išvestį, kuri grąžina tuos automobilius, kurių automobilio_kaina yra nuo 26 000 iki 70 000.
Apžvalga
Viduje PostgreSQL funkcija skyriuje išmokome šias temas:
- Mes panaudojome Funkcija KURTI komanda sukurti vartotojo apibrėžtą funkciją konkrečiai lentelei.
- Mes supratome procesą vartotojo apibrėžtos funkcijos iškvietimas naudojant įvairius užrašus, pvz Pozicinis, pavadintas ir mišrus.