Tässä osiossa aiomme ymmärtää järjestelmän toimintaa PostgreSQL-funktiot, luo funktio komento ja katso reaaliaikainen esimerkki PostgreSQL CREATE FUNCTION -komento käyttämällä erilaisia PostgreSQL-työkaluja, kuten pgadmin4 ja SQL-kuori (PSQL).
Ja katso esimerkki soittamisesta a käyttäjän määrittämä toiminto kuten paikkamerkintä nimeltä notaatio, sekoitettu merkintä.
Mikä on PostgreSQL-funktio?
PostgreSQL-funktio tai a tallennettu menettely on joukko SQL-käskyjä ja prosessikomentoja, kuten ilmoitukset, tehtävät, silmukat, hallinnan kulku jne. tallennettu tietokantapalvelimelle ja voi olla mukana käyttämällä SQL-käyttöliittymä . Ja se tunnetaan myös nimellä PostgreSQL:n tallennetut menettelyt .
Voimme luoda PostgreSQL-funktioita servaalikielillä, esim. SQL , PL/pgSQL , C , Python jne.
Sen avulla voimme suorittaa operaatioita, jotka yleensä vaativat erilaisia komentoja ja kiertomatkoja tietokannan toiminnossa.
Mikä on PostgreSQL CREATE Function -komento?
PostgreSQL:ssä, jos haluamme määrittää uuden käyttäjän määrittämän funktion, voimme käyttää LUO TOIMINTO komento.
PostgreSQL CREATE -funktion komennon syntaksi
Syntaksi kohteelle PostgreSQL CREATE -funktion komento on seuraava:
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; $$
Yllä olevassa syntaksissa olemme käyttäneet seuraavia parametreja alla olevan taulukon mukaisesti:
java yhteys mysql:iin
Parametrit | Kuvaus |
---|---|
funktion_nimi |
|
[TAI KORVAA] |
|
Toiminto |
|
PALATA |
|
Kieli plpgsql |
|
Function_body |
|
Esimerkki PostgreSQL Create Function -komennosta
Katsotaanpa erilaista esimerkkiä ymmärtääksemme sen toiminnan PostgreSQL CREATE -funktio komento.
Otamme Auto pöytä Javapoint tietokanta, joka on luotu PostgreSQL-opetusohjelmassa.
Uuden toiminnon luominen
Alla olevassa komennossa luomme uuden funktion, joka laskee Autot jonka Auto_hinta välissä Hinta_alkaen ja Hinta_määrä parametrit:
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 toiminto on jaettu kahteen pääosaan, jotka ovat Otsikko ja toimintorunko .
Olemme käyttäneet seuraavia parametreja Otsikko jakso:
- Ensisijaisesti määritämme funktion nimen muodossa get_car_Price(), mikä on kirjoitettu jälkeen luo toiminto
- Sen jälkeen, get_car_Price() funktio sisältää kaksi parametria Hinta_alkaen ja Price_to, joiden tietotyyppi on kokonaisluku.
- Sitten get_car_Price() funktio hakee kokonaisluvun, jonka määrittää return int -ehto.
- Ja lopuksi olemme käyttäneet funktiokieltä as plpgsql .
Olemme käyttäneet seuraavia parametreja Toimiva runko jakso:
- Olemme käyttäneet dollarin noteerattu merkkijono jatkuva kuva toimintoosiossa, joka alkaa $$ ja päättyy $$ .
- Välissä $$ merkki, voimme sijoittaa lohkon, joka kattaa ilmoitus ja funktion logiikka .
- Ilmoituslohkossa julistimme muuttujan nimeltä Car_count, joka tallentaa joukosta valitut autot Auto
- Lohkon rungossa olemme käyttäneet VALITSE -komento valitaksesi niiden autojen hinnan, joiden arvot ovat välillä Hinta_alkaen ja Hinta_määrä ja anna tulos Auton_määrä
- Lohkon lopussa olemme käyttäneet PALATA komento saada
Toiminnon luominen PostgreSQL:ssä
PostgreSQL:ssä voimme luoda funktion kahdella tavalla:
PostgreSQL Luo funktio pgAdminilla
Noudatamme alla olevaa prosessia funktion luomiseksi pgAdmin:
Vaihe 1
Ensinnäkin avaamme uusimman version pgAdmin paikallisessa järjestelmässämme, ja siirrymme objektipuuhun ja muodostamme yhteyden Javapoint esimerkkitietokanta, johon haluamme luoda funktion.
Vaihe 2
Tämän jälkeen avaamme kyselytyökalun napsauttamalla Kyselytyökalu seurasi Työkalut-osiota, kuten voimme nähdä alla olevassa kuvakaappauksessa:
len of array javassa
Vaihe 3
Luodaksesi hanki_auto_hinta1() -funktiossa, käytämme yllä olevaa koodia kyselytyökalu ja napsauta Suorittaa -painiketta.
Yllä olevan komennon toteuttamisen jälkeen saamme alla olevan viestiikkunan, joka näyttää toiminnon hanki_auto_hinta1() on ollut luotu onnistuneesti samanlaiseen tietokantaan.
Ja voimme tunnistaa toiminnon get_car_Price() in Toiminnot luettelo, kuten voimme nähdä seuraavassa kuvakaappauksessa:
Huomautus: Jos emme pysty tunnistamaan funktion nimeä, voimme napsauttaa hiiren kakkospainikkeella Functions-solmua ja valita Refresh... (Päivitä...) -valikosta toimintoluettelon elvyttämiseksi:
Funktion luominen SQL Shellillä (psql)
Seuraamme alla olevaa prosessia taulukon luomiseksi psql :
Vaihe 1
- Ensinnäkin avaamme psql paikallisessa järjestelmässämme ja muodostamme yhteyden tietokantaan, johon haluamme luoda funktion.
- Luomme taulukon javatpoint tietokanta, jonka loimme aiemmin PostgreSQL-opetusohjelmassa.
Vaihe 2
- Tietokannan yhdistämiseksi annamme alla olevan komennon:
c javatpoint
Lähtö
Yllä olevan komennon suorittamisen jälkeen saamme seuraavan tulosteen:
Huomautus: Jos annamme samanlaisen komennon kuin yllä funktion luomiseksi psql:ssä, se antaa alla virheen, joka on: funktio get_car_price on jo olemassa samoilla argumenttityypeillä.
Siksi tämän virheen ratkaisemiseksi luomme uuden funktion nimellä hanki_auto_hinta1 () seuraavassa vaiheessa.
Vaihe 3
str to int
Annamme alla olevan komennon funktion luomiseksi kuten hanki_auto_hinta1 () kohdassa javatpoint tietokanta.
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$# $$;
Lähtö
Saamme seuraavan tulosteen yllä olevan komennon toteuttamisesta, joka näyttää, että get_car_Price_count1() toiminto on luotu onnistuneesti.
Vaihe 4
Voimme käyttää alla olevaa komentoa listataksesi kaikki käyttäjän määrittämät toiminnot olemassa olevassa tietokannassa.
javatpoint=# df
Lähtö
Yllä olevan komennon suorittamisen jälkeen saamme alla olevan tulosteen:
Käyttäjän määrittämän funktion kutsuminen
PostgreSQL:ssä voimme kutsua käyttäjän määrittämää funktiota kolmella tavalla, jotka ovat seuraavat:
Funktion kutsuminen paikkamerkintöjä käyttäen
Jos haluamme kuvata argumentit samassa järjestyksessä parametreina, voimme kutsua funktiota paikkamerkinnät auta.
verkkotopologiat
Katsotaanpa esimerkkiesimerkkiä ymmärtääksemme Positiomerkintä työskentelee tietyn funktion kutsumiseksi.
Alla olevassa esimerkissä hanki_auton_hinta() argumentit ovat 26 000 ja 70 000 , joka vastaa Hinta_alkaen ja Price_to parametrit.
Select get_car_Price(26000,70000);
Lähtö
Yllä olevan komennon toteuttamisesta saadaan seuraava tulos, joka hakee ne neljä riviä, joiden auton_hinta on välissä 26000-70000.
Kun funktiolla ei juuri ole parametreja, voimme kutsua funktiota funktion avulla paikkamerkintä .
Jos funktio sisältää useita parametreja, voimme käyttää nimetty merkintä kutsua tiettyä funktiota, koska käyttämällä nimetty merkintä tekee funktiokutsusta ymmärrettävämmän.
Funktion kutsuminen nimettyä merkintää käyttäen
Alla olevassa esimerkissä näytämme kutsumisen toiminnan get_car_Price() funktio käyttämällä nimettyä merkintää:
select get_car_Price( Price_from => 26000, Price_to => 70000 );
Lähtö
Saamme seuraavan tulosteen suorittamalla yllä oleva komento, joka näyttää neljä riviä yllä olevan alueen perusteella auton_hinta .
Aiemmin mainitussa merkinnässä olemme käyttäneet => erottamaan väitteen nimi ja arvo .
PostgreSQL sallii luodun vanhemman syntaksin päällä := varten taaksepäin yhteensopivuus , kuten näemme seuraavassa komennossa:
select get_car_Price( Price_from := 26000, Price_to := 70000 );
Lähtö
Yllä olevan komennon suorittamisen jälkeen saamme samanlaisen tulosteen verrattuna yllä olevan komennon tulokseen, jossa käytämme ' =>' sijasta ':=' .
Funktion kutsuminen sekamuotoista merkintää käyttämällä
Se on ryhmittely paikallinen ja nimetty merkintöjä.
Katsotaanpa esimerkkiesimerkki, jotta ymmärrämme sen toiminnan Funktion kutsuminen sekamerkintöjä käyttäen.
Vuonna sekoitettu merkintä , emme voi käyttää nimeltään Parametrit ennen paikkaparametrit .
Esimerkiksi:
Alla olevassa komennossa käytämme nimetty käsite varten Hinta_alkaen parametri as Price_from=>26000, kun taas Price_to -parametria, olemme käyttäneet asemallinen käsitys kuten 70 000 , kuten näemme alla olevasta komennosta:
päämenetelmä java
select get_car_Price(Price_from=>26000,70000);
Lähtö
Suoritettuaan yllä olevan komennon PostgreSQL herättää virheen, joka sanoo, että asemaargumentti ei voi seurata nimettyä argumenttia .
Yllä olevan virheen ratkaisemiseksi käytämme paikka ja nimetty merkintä varten hanki_auton_hinta() toiminto, jossa 26 000 käytetään edustamaan Paikkamerkintä; toisaalta, Hinta_=>70 000 käytetään edustamaan nimetty merkintä :
select get_car_Price(26000,Price_to=>70000);
Lähtö
Yllä olevan komennon suorittamisen jälkeen saamme alla olevan lähdön, joka palauttaa ne autot, joiden auton_hinta on 26 000 - 70 000.
Yleiskatsaus
Vuonna PostgreSQL-toiminto -osiossa olemme oppineet seuraavat aiheet:
- Olemme käyttäneet CREATE-toiminto -komento luodaksesi käyttäjän määrittämän funktion kyseiselle taulukolle.
- Olemme ymmärtäneet prosessin käyttäjän määrittämän funktion kutsuminen erilaisten merkintöjen avulla, kuten Paikallinen, nimetty ja sekoitettu.