In questa sezione capiremo il funzionamento di Funzioni PostgreSQL, crea funzione comando e vedere l'esempio in tempo reale di Comando PostgreSQL CREATE FUNCTION utilizzando i diversi strumenti di PostgreSQL come pgadmin4 E Shell SQL (PSQL).
E guarda l'esempio di chiamare a funzione definita dall'utente ad esempio notazione posizionale notazione denominata, la notazione mista.
Cos'è la funzione PostgreSQL?
Una funzione PostgreSQL o a procedura memorizzata è un insieme di comandi SQL e procedurali come dichiarazioni, assegnazioni, cicli, flusso di controllo ecc. memorizzati sul server del database e possono essere coinvolti utilizzando il file interfaccia SQL . Ed è anche conosciuto come Procedure memorizzate PostgreSQL .
Possiamo creare funzioni PostgreSQL in linguaggi serval, ad esempio, SQL , PL/pgSQL , C , Pitone eccetera.
Ci consente di eseguire operazioni, che generalmente richiedono vari comandi e viaggi di andata e ritorno in una funzione all'interno del database.
Cos'è il comando della funzione CREATE PostgreSQL?
In PostgreSQL, se vogliamo specificare una nuova funzione definita dall'utente, possiamo usare il file CREA FUNZIONE comando.
Sintassi del comando della funzione CREATE PostgreSQL
La sintassi per Comando della funzione CREATE PostgreSQL è come segue:
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; $$
Nella sintassi precedente, abbiamo utilizzato i seguenti parametri, come mostrato nella tabella seguente:
esempi di NFA
Parametri | Descrizione |
---|---|
nome_funzione |
|
[O SOSTITUISCI] |
|
Funzione |
|
RITORNO |
|
Linguaggio plpgsql |
|
Funzione_corpo |
|
Esempio di comando Crea funzione PostgreSQL
Vediamo un esempio diverso per comprendere il funzionamento del Funzione CREATE di PostgreSQL comando.
Stiamo prendendo il Auto tabella da Javatpoint database, creato nel Tutorial PostgreSQL.
Creazione di una nuova funzione
Nel comando seguente, stiamo creando una nuova funzione, che conta il Automobili di chi Auto_Prezzo tra i Prezzo_da e Prezzo_a 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; $$;
IL get_car_Price la funzione è divisa in due sezioni principali, che sono Intestazione e corpo della funzione .
Abbiamo utilizzato i seguenti parametri nel file Intestazione sezione:
- Principalmente specifichiamo il nome della funzione come get_car_Price(), che è scritto dopo il creare funzione
- Dopodiché, il get_car_Price() la funzione contiene due parametri Prezzo_da E Prezzo_a, con tipo di dati intero.
- Poi il get_car_Price() la funzione recupera un numero intero definito dalla condizione return int.
- E alla fine abbiamo utilizzato il linguaggio funzionale as plpgsql .
Abbiamo utilizzato i seguenti parametri nel file Corpo funzionale sezione:
- Abbiamo utilizzato il stringa tra virgolette in dollari illustrazione costante nella sezione delle funzioni, che inizia con $$ e termina con $$ .
- Nel mezzo $$ segno, possiamo posizionare un blocco, che copre la dichiarazione E logica della funzione .
- Nel blocco di dichiarazione abbiamo dichiarato una variabile chiamata Conteggio_auto, che memorizza le auto selezionate dal Auto
- Nel corpo della sezione del blocco abbiamo utilizzato il file SELEZIONA IN comando per selezionare il prezzo delle auto i cui valori sono compresi tra Prezzo_da e Prezzo_a e dare l'output a Conteggio_auto
- Alla fine del blocco, abbiamo utilizzato il file RITORNO comando per ottenere il file
Creare una funzione in PostgreSQL
In PostgreSQL possiamo creare una funzione in due modi:
PostgreSQL Crea funzione utilizzando pgAdmin
Seguiremo la procedura seguente per creare una funzione in pgAdmin:
Passo 1
Innanzitutto, apriremo l'ultima versione pgAdmin nel nostro sistema locale, andremo all'albero degli oggetti e ci collegheremo al file Javatpoint database di esempio in cui vogliamo creare una funzione.
Passo 2
Successivamente, apriremo lo strumento di query facendo clic su Lo strumento di query ha seguito la sezione Strumenti, come possiamo vedere nello screenshot qui sotto:
modello di progettazione di fabbrica
Passaggio 3
Per creare il get_car_Price1() funzione, utilizzeremo il codice sopra nel file strumento di interrogazione e fare clic su Eseguire pulsante.
Dopo aver implementato il comando precedente, otterremo la finestra del messaggio seguente che mostra la funzione get_car_Price1() è stato creato con successo in un database simile.
E possiamo identificare la funzione get_car_Price() nel Funzioni list come possiamo vedere nello screenshot seguente:
Nota: se non riusciamo a identificare il nome della funzione, possiamo fare clic con il pulsante destro del mouse sul nodo Funzioni e selezionare la voce di menu Aggiorna... per ripristinare l'elenco delle funzioni:
Creazione di una funzione utilizzando SQL Shell(psql)
Seguiremo la procedura seguente per creare una tabella in psql :
Passo 1
- Per prima cosa apriremo il file psql nel nostro sistema locale e ci collegheremo al database in cui vogliamo creare una funzione.
- Creeremo una tabella nel file javatpoint database, che abbiamo creato in precedenza nel tutorial PostgreSQL.
Passo 2
- Per connettere un database, inseriremo il comando seguente:
c javatpoint
Produzione
Dopo aver eseguito il comando precedente, otterremo il seguente output:
Nota: se inseriamo un comando simile a quello sopra per creare una funzione, in psql, verrà emesso l'errore seguente, ovvero: la funzione get_car_price esiste già con gli stessi tipi di argomenti.
Pertanto, per risolvere questo errore, creiamo una nuova funzione come get_car_Price1 () nel passaggio successivo.
Passaggio 3
Java sostitutivo
Inseriremo il comando seguente per creare una funzione COME get_car_Price1 () nel javatpoint Banca dati.
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$# $$;
Produzione
Otterremo il seguente output sull'implementazione del comando precedente, che mostra che il file get_car_Price_count1() la funzione è stata creata correttamente.
Passaggio 4
Possiamo usare il comando seguente per elencare tutte le funzioni definite dall'utente nel database esistente.
javatpoint=# df
Produzione
Dopo aver eseguito il comando precedente, otterremo l'output seguente:
Come chiamare una funzione definita dall'utente
In PostgreSQL, possiamo chiamare la funzione definita dall'utente in tre modi, che sono i seguenti:
Chiamare una funzione utilizzando la notazione posizionale
Se vogliamo descrivere gli argomenti in un ordine simile a quello dei parametri, possiamo chiamare una funzione con il notazione posizionale aiuto.
età soleggiata e soleggiata
Vediamo un esempio di esempio per comprendere il Notazione posizionale lavorando per chiamare una particolare funzione.
Nell'esempio seguente, il get_car_price() gli argomenti sono 26000 E 70000 , che equivale a Prezzo_da E Prezzo_a parametri.
Select get_car_Price(26000,70000);
Produzione
Otterremo il seguente output implementando il comando precedente, che recupera quelle quattro righe di cui car_price è tra da 26.000 a 70.000.
Quando la funzione non ha quasi parametri, possiamo chiamarla con l'aiuto di notazione posizionale .
Se la funzione contiene più parametri, possiamo usare il file notazione denominata per chiamare la funzione particolare perché utilizzando il notazione denominata renderà la chiamata di funzione più comprensibile.
Chiamare una funzione utilizzando la notazione denominata
Nell'esempio seguente, mostriamo il funzionamento della chiamata a get_car_Price() funzione utilizzando la notazione denominata:
select get_car_Price( Price_from => 26000, Price_to => 70000 );
Produzione
Otterremo il seguente output eseguendo il comando precedente, che visualizza quattro righe in base all'intervallo di cui sopra car_price .
Nella notazione menzionata in precedenza, abbiamo utilizzato il => per distinguere gli argomenti nome e valore .
PostgreSQL consente la vecchia sintassi creata su := per il retrocompatibilità , come possiamo vedere nel seguente comando:
select get_car_Price( Price_from := 26000, Price_to := 70000 );
Produzione
Dopo aver eseguito il comando precedente, otterremo un output simile rispetto al risultato del comando precedente in cui utilizziamo il comando ' =>' invece di ':=' .
Chiamare una funzione utilizzando la notazione mista
È il raggruppamento di posizionale e nominativo notazioni.
Vediamo un esempio di esempio per comprendere il funzionamento di Chiamare una funzione utilizzando la notazione mista.
Nel notazione mista , non possiamo usare il file parametri denominati Prima parametri posizionali .
Per esempio:
Nel comando seguente utilizzeremo il file nozione nominata per Prezzo_da parametro come Prezzo_da=>26000, mentre per il Prezzo_a parametro, abbiamo utilizzato il parametro nozione posizionale COME 70000 , come possiamo vedere nel comando seguente:
coppia Java
select get_car_Price(Price_from=>26000,70000);
Produzione
Dopo aver eseguito il comando precedente, PostgreSQL genera un errore che dice che the l'argomento posizionale non può seguire l'argomento denominato .
Per risolvere l'errore precedente, stiamo utilizzando il file notazione posizionale e denominata per get_car_price() funzione dove il 26000 è usato per rappresentare il Notazione posizionale; d'altra parte, Prezzo_a=>70000 è usato per rappresentare il notazione denominata :
select get_car_Price(26000,Price_to=>70000);
Produzione
Dopo aver eseguito il comando precedente, otterremo l'output seguente, che restituisce quelle auto di cui car_price è compreso tra 26.000 e 70.000.
Panoramica
Nel Funzione PostgreSQL sezione, abbiamo appreso i seguenti argomenti:
- Abbiamo utilizzato il Funzione CREARE comando per creare una funzione definita dall'utente per la tabella specifica.
- Abbiamo compreso il processo di chiamando una funzione definita dall'utente con l'aiuto di diverse notazioni come Posizionale, nominativo e misto.