Š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 |
|
[VAI AIZSTĀT] |
|
Funkcija |
|
ATGRIEZT |
|
Valoda plpgsql |
|
Function_body |
|
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
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
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ē.
Un mēs varam noteikt funkciju get_car_Price() iekš Funkcijas saraksts, kā redzams šajā ekrānuzņēmumā:
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:
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:
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.
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 kā 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.
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:
Kā izsaukt lietotāja definētu funkciju
PostgreSQL mēs varam izsaukt lietotāja definēto funkciju trīs veidos, kas ir šādi:
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.
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 .
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ā ':=' .
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ēdziens kā 70 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 .
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.
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.