logo

PostgreSQL funkcijos

Š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
  • The funkcijos pavadinimas parametras naudojamas funkcijos pavadinimui apibrėžti.
  • Funkcijos pavadinimas rašomas po KURTI FUNKCIJĄ raktažodį.
[ARBA PAKEISTI]
  • Mes galime naudoti ARBA PAKEISTI raktinį žodį, jei norime pakeisti esamą funkciją.
  • Ir tai yra neprivalomas parametras.
Funkcija
  • Panaudojus ARBA PAKEISTI raktinį žodį, galime apibrėžti funkcija parametrų sąrašas, kuris pateikiamas skliausteliuose po Funkcijos pavadinimas.
  • O funkcijoje gali būti nulis arba keli parametrai.
GRĄŽINTI
  • Duomenų tipą galime apibrėžti po GRĄŽINTI raktinį žodį, kurį ketiname grąžinti iš funkcijos.
  • Tai gali būti bazinis, sudėtinis arba domeno tipas arba lentelės stulpelio tipo nuoroda.
Kalba plpgsql
  • Jis naudojamas apibrėžti procedūrinės kalbos, kuria vykdoma funkcija, pavadinimą.
  • Ir ne tik plpgsql, PostgreSQL palaiko įvairias procedūrines kalbas.
Function_body
  • The function_body yra vykdomosios logikos dalys.

„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 „PostgreSQL“ sukurkite funkciją naudodami „SQL Shell“.

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

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ę.

PoatgreSQL funkcija

Ir mes galime nustatyti funkciją get_car_Price () viduje Funkcijos sąrašą, kaip matome šioje ekrano kopijoje:

PoatgreSQL funkcija

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šą:

PoatgreSQL funkcija

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

PoatgreSQL funkcija

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.

PoatgreSQL funkcija

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.

PoatgreSQL funkcija

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

PoatgreSQL funkcija

Kaip iškviesti vartotojo nustatytą funkciją

„PostgreSQL“ vartotojo apibrėžtą funkciją galime iškviesti trimis būdais, kurie yra tokie:

    Padėties žymėjimas Pavadintas užrašas Mišrus užrašas

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.

PoatgreSQL funkcija

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 .

PoatgreSQL funkcija

Anksčiau minėtame žymėjime naudojome => atskirti argumentus vardą ir vertę .

PostgreSQL leidžia sukurti senesnę sintaksę ant :=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 ':=' .

PoatgreSQL funkcija

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 .

PoatgreSQL funkcija

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.

PoatgreSQL funkcija

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.