logo

PostgreSQL funkcijas

Šajā sadaļā mēs sapratīsim, kā darbojas PostgreSQL funkcijas, izveides funkcija komandu un skatiet reāllaika piemēru PostgreSQL komanda CREATE FUNCTION izmantojot dažādus PostgreSQL rīkus, piemēram, pgadmin4 un SQL apvalks (PSQL).

Un skatiet piemēru, kā izsaukt a lietotāja definēta funkcija piemēram, pozicionālais apzīmējums ar nosaukumu notation, jauktais apzīmējums.

Kas ir PostgreSQL funkcija?

PostgreSQL funkcija vai a saglabātā procedūra ir SQL un procesuālo komandu kopums, piemēram, deklarācijas, uzdevumi, cilpas, kontroles plūsma utt., kas tiek glabāti datu bāzes serverī un var tikt iesaistīti, izmantojot SQL interfeiss . Un tas ir arī pazīstams kā PostgreSQL saglabātās procedūras .

Mēs varam izveidot PostgreSQL funkcijas servel valodās, piemēram, SQL , PL/pgSQL , C , Python utt.

Tas ļauj mums veikt darbības, kas parasti veiktu dažādas komandas un braucienus turp un atpakaļ datu bāzes funkcijā.

Kas ir PostgreSQL CREATE funkcijas komanda?

PostgreSQL, ja mēs vēlamies norādīt jaunu lietotāja definētu funkciju, mēs varam izmantot IZVEIDOT FUNKCIJU komandu.

Funkcijas PostgreSQL CREATE sintakse

Sintakse priekš PostgreSQL CREATE funkcijas komanda ir šāds:

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

Iepriekš minētajā sintaksē mēs esam izmantojuši šādus parametrus, kā parādīts tālāk esošajā tabulā:

mysql saraksts visiem lietotājiem
Parametri Apraksts
funkcijas_nosaukums
  • The funkcijas nosaukums parametrs tiek izmantots, lai definētu funkcijas nosaukumu.
  • Funkcijas nosaukums tiek rakstīts aiz IZVEIDOT FUNKCIJU atslēgvārds.
[VAI AIZSTĀT]
  • Mēs varam izmantot VAI NOMAINIET atslēgvārdu, ja vēlamies mainīt pašreizējo funkciju.
  • Un tas ir izvēles parametrs.
Funkcija
  • Pēc lietošanas VAI NOMAINIET atslēgvārdu, mēs varam definēt funkciju parametru saraksts, kas ir ietverts iekavās pēc Funkcijas nosaukums.
  • Un funkcija var saturēt nulle vai vairākus parametrus.
ATGRIEZT
  • Mēs varam definēt datu tipu pēc ATGRIEZT atslēgvārdu, kuru mēs atgriezīsim no funkcijas.
  • Tas var būt bāzes, saliktā vai domēna tips vai tabulas kolonnas veida atsauce.
Valoda plpgsql
  • To izmanto, lai definētu procesuālās valodas nosaukumu, kurā funkcija tiek izpildīta.
  • Un ne tikai plpgsql, PostgreSQL atbalsta dažādas procesuālās valodas.
Function_body
  • The function_body satur loģikas izpildāmās daļas.

PostgreSQL izveides funkcijas komandas piemērs

Apskatīsim citu piemēru, lai saprastu, kā darbojas PostgreSQL CREATE funkcija komandu.

Mēs uzņemam Automašīna galds no Javapoint datu bāze, kas izveidota PostgreSQL apmācībā.

Jaunas funkcijas izveide

Zemāk esošajā komandā mēs izveidojam jaunu funkciju, kas uzskaita Automašīnas kuru Auto_Cena starp Cena_no un Cena_līdz 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 ir sadalīta divās galvenajās sadaļās, kas ir Galvene un funkcijas pamatteksts .

Mēs esam izmantojuši šādus parametrus Virsraksts sadaļa:

  • Pirmkārt, mēs norādām funkcijas nosaukumu kā get_car_Price(), kas ir rakstīts pēc izveidot funkciju
  • Pēc tam, get_car_Price() funkcija satur divus parametrus Cena_no un Cena_līdz, ar veselu skaitļu datu tipu.
  • Pēc tam, get_car_Price() funkcija izgūst veselu skaitli, ko definē atgriešanās int nosacījums.
  • Un beigās mēs esam izmantojuši funkciju valodu kā plpgsql .

Mēs esam izmantojuši šādus parametrus Funkciju korpuss sadaļa:

  • Mēs esam izmantojuši dolāra kotēta virkne pastāvīga ilustrācija funkciju sadaļā, kas sākas ar $$ un beidzas ar $$ .
  • Starp $$ zīmi, varam novietot bloku, kas nosedz deklarāciju un funkcijas loģika .
  • Deklarācijas blokā mēs deklarējām mainīgo, ko sauc Car_count, kurā tiek glabātas automašīnas, kas atlasītas no Automašīna
  • Bloku sadaļas pamattekstā mēs esam izmantojuši IZVĒLĒTIES komanda, lai atlasītu to automašīnu cenu, kuru vērtības ir starp Cena_no un Cena_līdz un dodiet izvadi uz Automašīnu_skaits
  • Bloka beigās mēs esam izmantojuši ATGRIEZT komandu, lai iegūtu

Funkcijas izveide programmā PostgreSQL

PostgreSQL mēs varam izveidot funkciju divos veidos:

    PostgreSQL izveides funkcija, izmantojot pgAdmin PostgreSQL izveides funkcija, izmantojot SQL Shell

PostgreSQL izveides funkcija, izmantojot pgAdmin

Mēs sekosim tālāk norādītajam procesam, lai izveidotu funkciju pgAdmin:

1. darbība

Pirmkārt, mēs atvērsim jaunāko versiju pgAdmin mūsu vietējā sistēmā, un mēs dosimies uz objekta koku un izveidosim savienojumu ar Javapoint parauga datubāze, kurā vēlamies izveidot funkciju.

2. darbība

Pēc tam mēs atvērsim vaicājuma rīku, noklikšķinot uz Vaicājuma rīks seko sadaļai Rīki, kā mēs redzam zemāk esošajā ekrānuzņēmumā:

java korteži
PoatgreSQL funkcija2

3. darbība

Lai izveidotu get_car_Price1() funkciju, mēs izmantosim iepriekš minēto kodu vaicājuma rīks un noklikšķiniet uz Izpildīt pogu.

Pēc iepriekš minētās komandas ieviešanas mēs saņemsim zemāk redzamo ziņojuma logu, kurā tiks parādīta šī funkcija get_car_Price1() ir bijis izveidots veiksmīgi iekļūt līdzīgā datubāzē.

PoatgreSQL funkcija

Un mēs varam noteikt funkciju get_car_Price() iekš Funkcijas saraksts, kā redzams šajā ekrānuzņēmumā:

PoatgreSQL funkcija

Piezīme. Ja nevaram identificēt funkcijas nosaukumu, varam ar peles labo pogu noklikšķināt uz mezgla Funkcijas un atlasīt izvēlnes vienumu Atsvaidzināt..., lai atdzīvinātu funkciju sarakstu:

PoatgreSQL funkcija

Funkcijas izveide, izmantojot SQL Shell (psql)

Mēs sekosim tālāk norādītajam procesam, lai izveidotu tabulu psql :

1. darbība

  • Pirmkārt, mēs atvērsim psql mūsu lokālajā sistēmā, un mēs izveidosim savienojumu ar datu bāzi, kurā vēlamies izveidot funkciju.
  • Mēs izveidosim tabulu javatpoint datu bāze, kuru izveidojām iepriekš PostgreSQL apmācībā.

2. darbība

  • Lai izveidotu savienojumu ar datu bāzi, mēs ievadīsim šādu komandu:
 c javatpoint 

Izvade

Pēc iepriekš minētās komandas izpildes mēs saņemsim šādu izvadi:

PoatgreSQL funkcija

Piezīme. Ja mēs ievadām līdzīgu komandu kā iepriekš, lai izveidotu funkciju psql, tā izdos tālāk norādīto kļūdu, kas ir: funkcija get_car_price jau pastāv ar tādiem pašiem argumentu veidiem.

PoatgreSQL funkcija

Tāpēc, lai atrisinātu šo kļūdu, mēs izveidojam jaunu funkciju kā get_car_Price1 () nākamajā darbībā.

3. darbība

tipa konvertēšana un liešana java

Mēs ievadīsim tālāk norādīto komandu, lai izveidotu funkciju get_car_Price1 () iekš javatpoint datu bāze.

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

Izvade

Ieviešot iepriekš minēto komandu, mēs iegūsim šādu izvadi, kas parāda, ka get_car_Price_count1() funkcija ir veiksmīgi izveidota.

PoatgreSQL funkcija

4. darbība

Mēs varam izmantot tālāk norādīto komandu, lai uzskaitītu visas lietotāja definētās funkcijas esošajā datubāzē.

 javatpoint=# df 

Izvade

Pēc iepriekš minētās komandas izpildes mēs iegūsim tālāk norādīto izvadi:

PoatgreSQL funkcija

Kā izsaukt lietotāja definētu funkciju

PostgreSQL mēs varam izsaukt lietotāja definēto funkciju trīs veidos, kas ir šādi:

    Pozīcijas apzīmējums Nosaukts apzīmējums Jauktais apzīmējums

Funkcijas izsaukšana, izmantojot pozicionālo apzīmējumu

Ja mēs vēlamies aprakstīt argumentus līdzīgā secībā kā parametrus, mēs varam izsaukt funkciju ar pozicionālais apzīmējums palīdzēt.

programmēšana c masīvos

Apskatīsim piemēru, lai saprastu Pozīcijas apzīmējums strādā, lai izsauktu noteiktu funkciju.

Tālāk esošajā piemērā get_car_price() argumenti ir 26 000 un 70 000 , kas ir līdzvērtīgs Cena_no un Cena_līdz parametrus.

 Select get_car_Price(26000,70000); 

Izvade

Mēs iegūsim šādu izvadi, ieviešot iepriekš minēto komandu, kas izgūst tās četras rindas, kuru auto_cena ir starp 26 000 līdz 70 000.

PoatgreSQL funkcija

Ja funkcijai gandrīz nav parametru, mēs varam izsaukt funkciju ar palīdzību pozicionālais apzīmējums .

Ja funkcija satur vairākus parametrus, mēs varam izmantot nosaukts apzīmējums lai izsauktu konkrēto funkciju, jo, izmantojot nosaukts apzīmējums padarīs funkcijas izsaukumu saprotamāku.

Funkcijas izsaukšana, izmantojot nosaukto apzīmējumu

Zemāk esošajā piemērā mēs parāda izsaukšanas darbību get_car_Price() funkcija, izmantojot nosaukto apzīmējumu:

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

Izvade

Mēs iegūsim šādu izvadi, izpildot iepriekš minēto komandu, kas parāda četras rindas, pamatojoties uz iepriekš minēto diapazonu auto_cena .

PoatgreSQL funkcija

Iepriekš minētajā apzīmējumā mēs esam izmantojuši => lai atšķirtu argumentus nosaukums un vērtība .

PostgreSQL ļauj izveidot vecāku sintaksi uz := priekš atpakaļejoša saderība , kā mēs redzam šādā komandā:

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

Izvade

Pēc iepriekš minētās komandas izpildes mēs iegūsim līdzīgu izvadi, salīdzinot ar iepriekš minētās komandas rezultātu, kurā mēs izmantojam ' =>' tā vietā ':=' .

PoatgreSQL funkcija

Funkcijas izsaukšana, izmantojot jaukto apzīmējumu

Tā ir grupēšana pozicionāls un nosaukts apzīmējumi.

Apskatīsim piemēru, lai saprastu, kā darbojas Funkcijas izsaukšana, izmantojot jauktu apzīmējumu.

Iekš jaukta notācija , mēs nevaram izmantot ar nosaukumu Parametri pirms tam pozicionālie parametri .

Piemēram:

Zemāk esošajā komandā mēs izmantosim nosaukts jēdziens priekš Cena_no parametrs kā Cena_no=>26000, tā kā par Cena_līdz parametrs, mēs esam izmantojuši pozicionālais jēdziens70 000 , kā mēs redzam tālāk esošajā komandā:

slēptās lietotnes
 select get_car_Price(Price_from=>26000,70000); 

Izvade

Pēc iepriekš minētās komandas izpildes PostgreSQL rada kļūdu, kurā teikts, ka pozicionālais arguments nevar sekot nosauktajam argumentam .

PoatgreSQL funkcija

Lai novērstu iepriekš minēto kļūdu, mēs izmantojam pozicionālais un nosauktais apzīmējums priekš get_car_price() funkcija, kur 26 000 tiek izmantots, lai attēlotu Pozīcijas apzīmējums; no otras puses, Cena_līdz => 70000 tiek izmantots, lai attēlotu nosaukts apzīmējums :

 select get_car_Price(26000,Price_to=>70000); 

Izvade

Pēc iepriekš minētās komandas izpildes mēs iegūsim zemāk esošo izvadi, kas atgriež tās automašīnas, kuru auto_cena ir no 26 000 līdz 70 000.

PoatgreSQL funkcija

Pārskats

Iekš PostgreSQL funkcija sadaļā, mēs esam apguvuši šādas tēmas:

  • Mēs esam izmantojuši Funkcija CREATE komandu, lai konkrētajai tabulai izveidotu lietotāja definētu funkciju.
  • Mēs esam sapratuši procesu lietotāja definētas funkcijas izsaukšana ar dažādu apzīmējumu palīdzību, piemēram, Pozicionāls, nosaukts un jaukts.