logo

Funcții PostgreSQL

În această secțiune, vom înțelege funcționarea Funcții PostgreSQL, funcția de creare comandă și vedeți exemplul în timp real al Comanda PostgreSQL CREATE FUNCTION folosind diferite instrumente ale PostgreSQL, cum ar fi pgadmin4 și shell SQL (PSQL).

Și vezi exemplul de a numi a funcţie definită de utilizator ca notație pozițională denumită notație, notația mixtă.

Ce este funcția PostgreSQL?

O funcție PostgreSQL sau a procedură stocată este un set de comenzi SQL și procedurale, cum ar fi declarații, atribuiri, bucle, flux de control etc. stocate pe serverul bazei de date și pot fi implicate folosind interfață SQL . Și este cunoscut și ca Proceduri stocate PostgreSQL .

Putem crea funcții PostgreSQL în limbaje serval, de exemplu, SQL , PL/pgSQL , C , Piton etc.

Ne permite să efectuăm operațiuni, care, în general, ar lua diverse comenzi și călătorii dus-întors într-o funcție din baza de date.

Ce este comanda PostgreSQL CREATE Function?

În PostgreSQL, dacă dorim să specificăm o nouă funcție definită de utilizator, putem folosi CREATE FUNCȚIE comanda.

Sintaxa comenzii PostgreSQL CREATE Function

Sintaxa pentru Comanda Funcție PostgreSQL CREATE este după cum urmează:

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

În sintaxa de mai sus, am folosit următorii parametri, așa cum se arată în tabelul de mai jos:

șir la caracter java
Parametrii Descriere
nume_funcție
  • The numele funcției parametrul este utilizat pentru a defini numele funcției.
  • Numele funcției este scris după CREATE FUNCȚIE cuvânt cheie.
[SAU ÎNLOCUIȚI]
  • Putem folosi SAU ÎNLOCUIȚI cuvânt cheie dacă dorim să schimbăm funcția curentă.
  • Și este un parametru opțional.
Funcţie
  • După folosirea SAU ÎNLOCUIȚI cuvânt cheie, putem defini funcţie lista de parametri care sunt acoperite în paranteze după Numele funcției.
  • Și o funcție poate conține zero sau mai mulți parametri.
ÎNTOARCERE
  • Putem defini tipul de date după ÎNTOARCERE cuvânt cheie, pe care îl vom returna din funcție.
  • Poate fi un tip de bază, compus sau de domeniu sau o referință a tipului unei coloane de tabel.
Limba plpgsql
  • Este folosit pentru a defini numele limbajului procedural în care este executată funcția.
  • Și nu doar plpgsql, PostgreSQL acceptă diverse limbaje procedurale.
Funcție_corp
  • The function_body conține părțile executabile ale logicii.

Exemplu de comandă PostgreSQL Creare funcție

Să vedem un exemplu diferit pentru a înțelege funcționarea Funcția PostgreSQL CREATE comanda.

Luăm Mașină masa de la Javatpoint baza de date, creată în Tutorialul PostgreSQL.

Crearea unei noi funcții

În comanda de mai jos, creăm o nouă funcție, care numără Mașini a caror Preț_mașină între Preț_de la și Preț_până 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 funcția este împărțită în două secțiuni principale, care sunt Antet și Corpul funcției .

Am folosit următorii parametri în Antet secțiune:

  • În primul rând, specificăm numele funcției ca get_car_Price(), care este scris după creați funcția
  • După aceea, get_car_Price() funcția conține doi parametri Pret de la și Preț_la, având un tip de date întreg.
  • Apoi, get_car_Price() funcția preia un număr întreg definit de condiția return int.
  • Și la sfârșit, am folosit limbajul funcției ca plpgsql .

Am folosit următorii parametri în Funcția Corp secțiune:

  • Am folosit șir cotat în dolari ilustrație constantă în secțiunea funcție, care începe cu $$ si se termina cu $$ .
  • Intre $$ semn, putem plasa un bloc, care acoperă declarația și logica functiei .
  • În blocul de declarare, am declarat o variabilă numită Număr_mașini, care stochează mașinile selectate din Mașină
  • În corpul secțiunii bloc, am folosit SELECTAȚI ÎNTRE comanda pentru a selecta Prețul mașinilor ale căror valori sunt între Preț_de la și Preț_până și dați ieșirea la Număr_mașini
  • La sfârșitul blocului, am folosit ÎNTOARCERE comanda pentru a obține

Crearea unei funcții în PostgreSQL

În PostgreSQL, putem crea o funcție în două moduri:

    Funcția de creare PostgreSQL folosind pgAdmin PostgreSQL Creare funcție folosind SQL Shell

Funcția de creare PostgreSQL folosind pgAdmin

Vom urma procesul de mai jos pentru a crea o funcție în pgAdmin:

Pasul 1

În primul rând, vom deschide cea mai recentă versiune pgAdmin în sistemul nostru local și vom merge la arborele de obiecte și ne vom conecta la Javatpoint exemplu de bază de date în care dorim să creăm o funcție.

Pasul 2

După aceea, vom deschide instrumentul de interogare făcând clic pe Instrumentul de interogare a urmat secțiunea Instrumente, după cum putem vedea în captura de ecran de mai jos:

programare round robin
Funcția PoatgreSQL2

Pasul 3

Pentru a crea get_car_Price1() funcția, vom folosi codul de mai sus în instrument de interogare și faceți clic pe A executa buton.

După implementarea comenzii de mai sus, vom primi fereastra de mesaj de mai jos care afișează funcția get_car_Price1() a fost creată cu succes într-o bază de date similară.

Funcția PoatgreSQL

Și, putem identifica funcția get_car_Price() în Funcții listă așa cum putem vedea în următoarea captură de ecran:

Funcția PoatgreSQL

Notă: Dacă nu putem identifica numele funcției, putem face clic dreapta pe nodul Funcții și selecta opțiunea de meniu Refresh... pentru a reactiva lista de funcții:

Funcția PoatgreSQL

Crearea unei funcții folosind SQL Shell(psql)

Vom urma procesul de mai jos pentru a crea un tabel în psql :

Pasul 1

  • În primul rând, vom deschide psql în sistemul nostru local și ne vom conecta la baza de date în care dorim să creăm o funcție.
  • Vom crea un tabel în javatpoint baza de date, pe care am creat-o mai devreme în tutorialul PostgreSQL.

Pasul 2

  • Pentru conectarea unei baze de date, vom introduce comanda de mai jos:
 c javatpoint 

Ieșire

După executarea comenzii de mai sus, vom obține următoarea ieșire:

Funcția PoatgreSQL

Notă: Dacă introducem o comandă similară ca mai sus pentru a crea o funcție, în psql, aceasta va emite eroarea de mai jos și anume: funcția get_car_price există deja cu aceleași tipuri de argumente.

Funcția PoatgreSQL

Prin urmare, pentru a rezolva această eroare, creăm o nouă funcție ca get_car_Price1 () în pasul următor.

Pasul 3

conversie de tip și turnare în java

Vom introduce comanda de mai jos pentru a crea o funcție la fel de get_car_Price1 () în javatpoint Bază de date.

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

Ieșire

Vom obține următorul rezultat la implementarea comenzii de mai sus, care afișează că get_car_Price_count1() funcția a fost creată cu succes.

Funcția PoatgreSQL

Pasul 4

Putem folosi comanda de mai jos pentru a enumera toate funcțiile definite de utilizator din baza de date existentă.

 javatpoint=# df 

Ieșire

După executarea comenzii de mai sus, vom obține rezultatul de mai jos:

Funcția PoatgreSQL

Cum să apelați o funcție definită de utilizator

În PostgreSQL, putem apela funcția definită de utilizator în trei moduri, care sunt după cum urmează:

    Notație pozițională Notație numită Notația mixtă

Apelarea unei funcții folosind notația pozițională

Dacă dorim să descriem argumentele într-o ordine similară ca parametri, putem apela o funcție cu notații poziționale Ajutor.

directorul de redenumire linux

Să vedem un exemplu de exemplu pentru a înțelege Notația pozițională lucrează pentru a apela o anumită funcție.

În exemplul de mai jos, get_car_price() argumentele sunt 26000 și 70000 , care este echivalent cu Pret de la și Preț_la parametrii.

 Select get_car_Price(26000,70000); 

Ieșire

Vom obține următorul rezultat la implementarea comenzii de mai sus, care preia acele patru rânduri ale căror pret_masina este între 26000 până la 70000.

Funcția PoatgreSQL

Când funcția are aproape parametru, putem apela o funcție cu ajutorul lui notație pozițională .

Dacă funcția conține mai mulți parametri, putem folosi notație numită pentru a apela funcția anume deoarece utilizând notație numită va face apelul funcției mai ușor de înțeles.

Apelarea unei funcții folosind notația numită

În exemplul de mai jos, afișăm funcționarea apelării get_car_Price() funcția folosind notația numită:

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

Ieșire

Vom obține următoarea ieșire la executarea comenzii de mai sus, care afișează patru rânduri bazate pe intervalul de mai sus pret_masina .

Funcția PoatgreSQL

În notația menționată mai devreme, am folosit => pentru a distinge argumentul nume si valoare .

PostgreSQL permite creată sintaxa mai veche pe := pentru compatibilitate inversă , după cum putem vedea în următoarea comandă:

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

Ieșire

După executarea comenzii de mai sus, vom obține o ieșire similară în comparație cu rezultatul comenzii de mai sus, unde folosim „ =>' în loc de ':=' .

Funcția PoatgreSQL

Apelarea unei funcții folosind notația mixtă

Este gruparea de pozițional și numit notații.

Să vedem un exemplu de exemplu pentru a înțelege funcționarea Apelarea unei funcții folosind notația mixtă.

În notație mixtă , nu putem folosi numiti Parametri inainte de Parametrii poziționali .

De exemplu:

În comanda de mai jos, vom folosi noțiune numită pentru Pret de la parametru ca Preț_de la => 26000, întrucât pentru Preț_la parametrul, am folosit noțiune pozițională la fel de 70000 , așa cum putem vedea în comanda de mai jos:

exemple de sisteme de operare
 select get_car_Price(Price_from=>26000,70000); 

Ieșire

După executarea comenzii de mai sus, PostgreSQL generează o eroare, care spune că argumentul pozițional nu poate urma argumentul numit .

Funcția PoatgreSQL

Pentru a rezolva eroarea de mai sus, folosim notație pozițională și numită pentru get_car_price() funcția în care 26000 este folosit pentru a reprezenta Notarea pozițională; pe de altă parte, Preț_la => 70000 este folosit pentru a reprezenta notație numită :

 select get_car_Price(26000,Price_to=>70000); 

Ieșire

După executarea comenzii de mai sus, vom obține rezultatul de mai jos, care returnează acele mașini ale căror pret_masina este între 26000 și 70000.

Funcția PoatgreSQL

Prezentare generală

În Funcția PostgreSQL secțiunea, am învățat următoarele subiecte:

  • Am folosit Funcția CREATE comandă pentru a crea o funcție definită de utilizator pentru un anumit tabel.
  • Am înțeles procesul de apelarea unei funcții definite de utilizator cu ajutorul diferitelor notaţii precum Pozițional, denumit și mixt.