I det här avsnittet kommer vi att förstå hur det fungerar PostgreSQL-funktioner, skapa funktion kommando och se realtidsexemplet på PostgreSQL CREATE FUNCTION kommando använda de olika verktygen i PostgreSQL som t.ex pgadmin4 och SQL-skal (PSQL).
Och se exemplet med att kalla en användardefinierad funktion Till exempel positionsbeteckning namngiven notation, den blandade notationen.
Vad är PostgreSQL-funktionen?
En PostgreSQL-funktion eller en lagrad procedur är en uppsättning SQL och procedurkommandon som t.ex deklarationer, uppdrag, loopar, flow-of-control etc. lagras på databasservern och kan involveras med hjälp av SQL-gränssnitt . Och det är också känt som PostgreSQL lagrade procedurer .
Vi kan skapa PostgreSQL-funktioner på servalspråk, till exempel, SQL , PL/pgSQL , C , Pytonorm etc.
Det gör det möjligt för oss att utföra operationer, som vanligtvis tar olika kommandon och rundor i en funktion i databasen.
Vad är kommandot PostgreSQL CREATE Function?
I PostgreSQL, om vi vill specificera en ny användardefinierad funktion, kan vi använda SKAPA FUNKTION kommando.
Syntax för PostgreSQL CREATE-funktionskommandot
Syntaxen för PostgreSQL CREATE Funktionskommando enligt följande:
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; $$
I ovanstående syntax har vi använt följande parametrar, som visas i tabellen nedan:
hur får jag reda på storleken på min bildskärm
Parametrar | Beskrivning |
---|---|
funktionsnamn |
|
[ELLER ERSÄTT] |
|
Fungera |
|
LÄMNA TILLBAKA |
|
Språk plpgsql |
|
Function_body |
|
Exempel på PostgreSQL Skapa funktionskommando
Låt oss se ett annat exempel för att förstå hur det fungerar PostgreSQL CREATE-funktion kommando.
Vi tar Bil bord från Javatpoint databas, skapad i PostgreSQL Tutorial.
Skapa en ny funktion
I kommandot nedan skapar vi en ny funktion som räknar Bilar vars Bil_Pris mellan Pris_från och Pris_till parametrar:
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; $$;
De get_car_Price funktion är uppdelad i två huvudsektioner, som är Rubrik och funktionskropp .
Vi har använt följande parametrar i Rubrik sektion:
- I första hand anger vi funktionsnamnet som get_car_Price(), som är skriven efter skapa funktion
- Efter det har get_car_Price() Funktionen innehåller två parametrar Pris från och Pris_till, med heltalsdatatyp.
- Sedan get_car_Price() funktionen hämtar ett heltal definierat av return int-villkoret.
- Och på slutet har vi använt funktionen språk som plpgsql .
Vi har använt följande parametrar i Funktion Kropp sektion:
- Vi har använt dollarnoterad sträng konstant illustration i funktionsdelen, som börjar med $$ och slutar med $$ .
- Mellan $$ tecken, vi kan placera ett block, som täcker deklarationen och logiken i funktionen .
- I deklarationsblocket deklarerade vi en variabel som heter Car_count, som lagrar bilarna som valts från Bil
- I blocksektionens kropp har vi använt VÄLJ IN kommando för att välja priset på bilar vars värden ligger mellan Pris_från och Pris_till och ge resultatet till Bil_antal
- I slutet av blocket har vi använt LÄMNA TILLBAKA kommandot för att hämta
Skapa en funktion i PostgreSQL
I PostgreSQL kan vi skapa en funktion på två sätt:
PostgreSQL Skapa funktion med pgAdmin
Vi kommer att följa processen nedan för att skapa en funktion i pgAdmin:
Steg 1
Först kommer vi att öppna den senaste versionen pgAdmin i vårt lokala system, och vi kommer att gå till objektträdet och ansluta till Javatpoint exempeldatabas där vi vill skapa en funktion.
Steg 2
Efter det kommer vi att öppna frågeverktyget genom att klicka på Frågeverktyget följt avsnittet Verktyg, som vi kan se i skärmdumpen nedan:
iterator java karta
Steg 3
För att skapa get_car_Price1() funktionen kommer vi att använda ovanstående kod i frågeverktyg och klicka på Kör knapp.
Efter att ha implementerat kommandot ovan kommer vi att få meddelandefönstret nedan som visar att funktionen get_car_Price1() har varit skapas framgångsrikt in i en liknande databas.
Och vi kan identifiera funktionen get_car_Price() i Funktioner lista som vi kan se i följande skärmdump:
Obs: Om vi inte kan identifiera funktionsnamnet kan vi högerklicka på funktionsnoden och välja menyalternativet Uppdatera... för att återuppliva funktionslistan:
Skapa en funktion med SQL Shell(psql)
Vi kommer att följa processen nedan för att skapa en tabell i psql :
Steg 1
- Först kommer vi att öppna psql i vårt lokala system, och vi kommer att ansluta till databasen där vi vill skapa en funktion.
- Vi kommer att skapa en tabell i javatpoint databas, som vi skapade tidigare i PostgreSQL-handledningen.
Steg 2
- För att ansluta en databas kommer vi att ange kommandot nedan:
c javatpoint
Produktion
Efter att ha utfört kommandot ovan kommer vi att få följande utdata:
Obs: Om vi anger ett liknande kommando som ovan för att skapa en funktion, i psql, kommer det att ge följande fel, dvs.: funktionen get_car_price existerar redan med samma argumenttyper.
Därför, för att lösa detta fel, skapar vi en ny funktion som get_car_Price1 () i nästa steg.
Steg 3
java ersätt allt
Vi kommer att ange kommandot nedan för att skapa en funktion som get_car_Price1 () i javatpoint databas.
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$# $$;
Produktion
Vi kommer att få följande utdata när vi implementerar kommandot ovan, som visar att get_car_Price_count1() funktionen har skapats framgångsrikt.
Steg 4
Vi kan använda kommandot nedan för att lista alla användardefinierade funktioner i den befintliga databasen.
javatpoint=# df
Produktion
Efter att ha utfört kommandot ovan får vi följande utdata:
Hur man anropar en användardefinierad funktion
I PostgreSQL kan vi anropa den användardefinierade funktionen på tre sätt, som är följande:
Anropa en funktion med positionsbeteckning
Om vi vill beskriva argumenten i liknande ordning som parametrar kan vi anropa en funktion med positionsbeteckningar hjälp.
java matematik
Låt oss se ett exempel för att förstå Positionsbeteckning arbetar med att anropa en viss funktion.
I exemplet nedan visas get_car_price() argument är 26 000 och 70 000 , vilket motsvarar Pris från och Pris_till parametrar.
Select get_car_Price(26000,70000);
Produktion
Vi kommer att få följande utdata när vi implementerar kommandot ovan, som hämtar de fyra raderna vars bil_pris är mellan 26 000 till 70 000.
När funktionen knappt har några parametrar kan vi anropa en funktion med hjälp av positionsbeteckning .
Om funktionen innehåller flera parametrar kan vi använda namngiven notation att anropa den specifika funktionen eftersom du använder namngiven notation kommer att göra funktionsanropet mer begripligt.
Anropa en funktion med namngiven notation
I exemplet nedan visar vi hur det fungerar att anropa get_car_Price() funktion med den namngivna notationen:
select get_car_Price( Price_from => 26000, Price_to => 70000 );
Produktion
Vi kommer att få följande utdata när vi utför kommandot ovan, som visar fyra rader baserat på ovanstående intervall av bil_pris .
I notationen som nämndes tidigare har vi använt => för att särskilja argumentet namn och värde .
PostgreSQL tillåter den äldre syntaxen som skapas på := för bakåtkompatibilitet , som vi kan se i följande kommando:
select get_car_Price( Price_from := 26000, Price_to := 70000 );
Produktion
Efter att ha utfört kommandot ovan kommer vi att få en liknande utdata jämfört med ovanstående kommandos resultat där vi använder ' =>' istället för ':=' .
Anropa en funktion med den blandade notationen
Det är grupperingen av positionella och namngivna notationer.
Låt oss se ett exempel för att förstå hur det fungerar Anropa en funktion med blandad notation.
I den blandad notation , vi kan inte använda namngivna parametrar innan positionsparametrar .
Till exempel:
I kommandot nedan kommer vi att använda namngiven föreställning för Pris från parameter som Price_from=>26000, medan för Pris_till parametern har vi använt positionsuppfattning som 70 000 , som vi kan se i kommandot nedan:
ridhima tiwari
select get_car_Price(Price_from=>26000,70000);
Produktion
Efter att ha utfört kommandot ovan, visar PostgreSQL ett fel som säger att positionsargument kan inte följa det namngivna argumentet .
För att lösa ovanstående fel använder vi positionell och namngiven notation för get_car_price() funktion där 26 000 används för att representera Positionsbeteckning; å andra sidan, Pris_till=>70 000 används för att representera namngiven notation :
select get_car_Price(26000,Price_to=>70000);
Produktion
Efter att ha utfört kommandot ovan kommer vi att få utdata nedan, som returnerar de bilar vars bil_pris är mellan 26000 till 70000.
Översikt
I den PostgreSQL-funktion avsnitt har vi lärt oss följande ämnen:
- Vi har använt CREATE-funktionen kommando för att skapa en användardefinierad funktion för den specifika tabellen.
- Vi har förstått processen anropa en användardefinierad funktion med hjälp av olika notationer som t.ex Positionell, namngiven och blandad.