Nesta seção, vamos entender o funcionamento das funções PostgreSQL, criar comando function, e ver o exemplo em tempo real do comando PostgreSQL CREATE FUNCTION usando as diferentes ferramentas do PostgreSQL como pgadmin4 e shell SQL (PSQL).
E veja o exemplo de chamar uma função definida pelo usuário, como a notação posicional chamada notação, a notação mista.
- Qual é a função PostgreSQL?
- O que é o comando CREATE Function do PostgreSQL?
- Sintaxe da função CREATE do PostgreSQL comando
- Example of PostgreSQL Create Function Command
- Creating a new function
- Criando uma função no PostgreSQL
- PostgreSQL Create Function usando pgAdmin
- Note: Se não conseguirmos identificar o nome da função, podemos clicar com o botão direito do mouse no nó Funções e selecionar Atualizar… menu item to revive the function list:
- Creating a function using SQL Shell(psql)
- Note: If we enter a similar command as above to create a function, in psql, it will issue the below error that is: the function get_car_price already exists with the same argument types.
- How to Call a user-defined function
- Chamar uma função usando notação posicional
- Chamar uma função usando a notação nomeada
- Chamar uma função usando a notação mista
- Overview
Qual é a função PostgreSQL?
Uma função PostgreSQL ou um procedimento armazenado é um conjunto de comandos SQL e de procedimentos como declarações, atribuições, loops, fluxo de controle, etc. armazenados no servidor de banco de dados e podem ser envolvidos usando a interface SQL. E também é conhecido como PostgreSQL stored procedures.
Podemos criar funções PostgreSQL em linguagens serval, por exemplo, SQL, PL/pgSQL, C, Python etc.
P>Ele nos permite realizar operações, que geralmente tomariam vários comandos e round trips em uma função dentro do banco de dados.
O que é o comando CREATE Function do PostgreSQL?
No PostgreSQL, se quisermos especificar uma nova função definida pelo usuário, podemos usar o comando CREATE FUNCTION.
Sintaxe da função CREATE do PostgreSQL comando
O comando Syntax for PostgreSQL CREATE Function é o seguinte:
Na sintaxe acima, nós utilizamos os seguintes parâmetros, como mostrado na tabela abaixo:
Parameters | Description |
---|---|
function_name | ul>
|
|
|
Function |
|
RETURN |
|
Language plpgsql |
|
Function_body |
|
Example of PostgreSQL Create Function Command
Let us see a different example to understand the working of the PostgreSQL CREATE Function command.
We are taking the Car table from the Javatpoint database, created in the PostgreSQL Tutorial.
Creating a new function
In the below command, we are creating a new function, which counts the Cars whose Car_Price between the Price_from and Price_to parameters:
The get_car_Price function is divided into two main sections, which are Header and Function Body.
Usamos os seguintes parâmetros na seção Cabeçalho:
- Price(), que é escrito após a função criar
- Depois disso, a função get_car_Price() contém dois parâmetros Price_from e Price_to, tendo um datatype inteiro.
- Então, a função get_car_Price() recupera um número inteiro definido pela condição int de retorno.
- E no final, usamos a linguagem da função como plpgsql.
Usamos os seguintes parâmetros na secção Function Body:
- Usamos a ilustração da stringconstante cotada em dólares na secção function, que começa com $$ e termina com $$.
- Entre o sinal $$, podemos colocar um bloco, que cobre a declaração e a lógica da função.
- No bloco de declaração, declaramos uma variável chamada Car_count,que armazena os carros selecionados da seção Carro
- No corpo do bloco, usamos o comando SELECT INTOcommand para selecionar o Preço dos carros cujos valores estão entre Price_from e Price_to e dar a saída para o Car_count
- No final do bloco, usamos o comando RETURN para obter o comando
Criando uma função no PostgreSQL
No PostgreSQL, podemos criar uma função de duas maneiras:
- PostgreSQL Create Function usando pgAdmin
- PostgreSQL Create Function usando SQL Shell
PostgreSQL Create Function usando pgAdmin
Vamos seguir o processo abaixo para criar uma função no pgAdmin:
P>Passo1
P>Primeiro, vamos abrir a última versão do pgAdmin em nosso sistema local, e iremos para a árvore de objetos e nos conectaremos ao banco de dados de amostras Javatpoint no qual queremos criar uma função.
P>Passo2
Após isso, abriremos a ferramenta de consulta clicando em Query tool followed Tools section, como podemos ver na imagem abaixo:
Passo3
Para criar a função get_car_Price1(), usaremos o código acima na ferramenta de consulta e clicaremos no botão Execute.
Após implementar o comando acima, obteremos a janela de mensagem abaixo mostrando que a função get_car_Price1() foi criada com sucesso em uma base de dados similar.
E, podemos identificar a função get_car_Price() na lista de funções como podemos ver na seguinte captura de tela:
Creating a function using SQL Shell(psql)
We are going to follow the below process to create a table in psql:
Step1
- Firstly, we will open the psqlin our local system, and we will connect to the database where we want to create a function.
- We will create a table in the javatpointdatabase, which we created earlier in the PostgreSQL tutorial.
Step2
- For connecting a database, we will enter the below command:
Output
After executing the above command, we will get the following output:
Note: If we enter a similar command as above to create a function, in psql, it will issue the below error that is: the function get_car_price already exists with the same argument types.
Therefore, to resolve this error, we create a new function as get_car_Price1() in the next step.
Step3
We will enter the below command to create a function as get_car_Price1() in the javatpoint database.
Output
We will get the following output on implementing the above command, which displays that the get_car_Price_count1() function has been created successfully.
Step4
We can use the below command to list all user-defined functions in the existing database.
Output
After executing the above command, we will get the below output:
How to Call a user-defined function
In PostgreSQL, we can call the user-defined function in three ways, which are as follows:
- Notação posicional
- Notação nomeada
- A notação mista
Chamar uma função usando notação posicional
Se quisermos descrever os argumentos numa ordem semelhante como parâmetros, podemos chamar uma função com a ajuda da notação posicional.
Deixe-nos ver um exemplo para entender a notação posicional trabalhando para chamar uma determinada função.
No exemplo abaixo, os argumentos get_car_price() são 26000 e 70000, o que é equivalente aos parâmetros Price_from e Price_to.
Output
Obteremos a seguinte saída ao implementar o comando acima, que recupera aquelas quatro linhas cujo car_price está entre 26000 e 70000.
Quando a função quase não tem parâmetros, podemos chamar uma função com a ajuda da notação posicional.
Se a função contém vários parâmetros, podemos usar a notação nomeada para chamar a função em particular, porque usar a notação nomeada tornará a chamada da função mais compreensível.
Chamar uma função usando a notação nomeada
No exemplo abaixo, estamos exibindo o trabalho de chamar a função get_car_Price() usando a notação nomeada:
Output
Obteremos a seguinte saída ao executar o comando acima, que exibe quatro linhas baseadas na faixa acima do car_price.
Na notação mencionada anteriormente, usamos a => para distinguir o nome e o valor do argumento.
PostgreSQL permite a sintaxe mais antiga criada em := para a compatibilidade retroativa, como podemos ver no seguinte comando:
Output
Após a execução do comando acima, obteremos uma saída semelhante em relação ao resultado do comando acima onde usamos o ‘=>’ em vez de ‘:=’.
Chamar uma função usando a notação mista
É o agrupamento de notações posicionais e nomeadas.
Deixe-nos ver um exemplo para entender o funcionamento da função chamando uma função usando notação mista.
Na notação mista, não podemos usar os Parâmetros nomeados antes dos Parâmetros Posicionais.
Por exemplo:
No comando abaixo, vamos usar a noção nomeada para o parâmetro Price_from como Price_from=>26000, enquanto que para o parâmetro Price_to, usamos a noção posicional como 70000, como podemos ver no comando abaixo:
Output
Após executar o comando acima, o PostgreSQL levanta um erro, que diz que o argumento posicional não pode seguir o argumento nomeado.
Para resolver o erro acima, estamos usando a notação posicional e nomeada para a função get_car_price() onde o 26000 é usado para representar a notação Posicional; por outro lado, Price_to=>70000 é usado para representar a notação nomeada:
Output
Após executar o comando acima, obteremos a saída abaixo, que retorna aqueles carros cujo preço do car_price está entre 26000 e 70000.
Overview
Na seção de funções do PostgreSQL, aprendemos os seguintes tópicos:
- Utilizamos o comando CREATE Functioncommand para criar uma função definida pelo usuário para a tabela em particular.
- Entendemos o processo de chamar uma função definida pelo usuário com a ajuda de diferentes notações como Posicional, Nomeado e Misto.