logo

PostgreSQL-funktiot

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
  • The funktion nimi parametria käytetään määrittämään funktion nimi.
  • Toiminnon nimi kirjoitetaan perään LUO TOIMINTO avainsana.
[TAI KORVAA]
  • Voimme käyttää TAI VAIHDA avainsana, jos haluamme muuttaa nykyistä funktiota.
  • Ja se on valinnainen parametri.
Toiminto
  • Käytön jälkeen TAI VAIHDA avainsana, voimme määritellä toiminto parametriluettelo, joka on käsitelty suluissa Toiminnon nimi.
  • Ja funktio voi sisältää nollan tai useita parametreja.
PALATA
  • Voimme määrittää tietotyypin jälkeen PALATA avainsana, jonka aiomme palauttaa funktiosta.
  • Se voi olla perus-, yhdistelmä- tai verkkotunnustyyppi tai viittaus taulukon sarakkeen tyyppiin.
Kieli plpgsql
  • Sitä käytetään sen prosessikielen nimen määrittämiseen, jolla toiminto suoritetaan.
  • Eikä vain plpgsql, PostgreSQL tukee useita proseduurikieliä.
Function_body
  • The function_body sisältää logiikan suoritettavat osat.

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 PostgreSQL Luo funktio SQL Shellillä

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
PoatgreSQL-funktio 2

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.

PoatgreSQL-funktio

Ja voimme tunnistaa toiminnon get_car_Price() in Toiminnot luettelo, kuten voimme nähdä seuraavassa kuvakaappauksessa:

PoatgreSQL-funktio

Huomautus: Jos emme pysty tunnistamaan funktion nimeä, voimme napsauttaa hiiren kakkospainikkeella Functions-solmua ja valita Refresh... (Päivitä...) -valikosta toimintoluettelon elvyttämiseksi:

PoatgreSQL-funktio

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:

PoatgreSQL-funktio

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

PoatgreSQL-funktio

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.

PoatgreSQL-funktio

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:

PoatgreSQL-funktio

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:

    Positiomerkintä Nimetty merkintä Sekalainen merkintä

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.

PoatgreSQL-funktio

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 .

PoatgreSQL-funktio

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 ':=' .

PoatgreSQL-funktio

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 .

PoatgreSQL-funktio

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.

PoatgreSQL-funktio

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.