En esta sección, vamos a entender el funcionamiento de las funciones PostgreSQL, crear comando de función, y ver el ejemplo en tiempo real del comando PostgreSQL CREATE FUNCTION utilizando las diferentes herramientas de PostgreSQL como pgadmin4 y SQL shell (PSQL).
Y vea el ejemplo de llamar a una función definida por el usuario como la notación posicional con nombre, la notación mixta.
- ¿Qué es la función PostgreSQL?
- ¿Qué es el comando CREATE Function de PostgreSQL?
- Sintaxis del comando CREATE Function de PostgreSQL
- Example of PostgreSQL Create Function Command
- Creating a new function
- Creación de una función en PostgreSQL
- Crear función en PostgreSQL usando pgAdmin
- Nota: Si no podemos identificar el nombre de la función, podemos hacer clic con el botón derecho del ratón en el nodo Funciones y seleccionar el elemento de menú Refrescar… 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
- Llamada a una función utilizando la notación posicional
- Llamada a una función utilizando la notación con nombre
- Llamada a una función utilizando la notación mixta
- Resumen
¿Qué es la función PostgreSQL?
Una función PostgreSQL o un procedimiento almacenado es un conjunto de comandos SQL y de procedimiento como declaraciones, asignaciones, bucles, flujo de control, etc. almacenados en el servidor de la base de datos y puede ser involucrado usando la interfaz SQL. Y también se conoce como procedimientos almacenados PostgreSQL.
Podemos crear funciones PostgreSQL en servalenguajes, por ejemplo, SQL, PL/pgSQL, C, Python, etc.
Nos permite realizar operaciones, que generalmente tomarían varios comandos y viajes de ida y vuelta en una función dentro de la base de datos.
¿Qué es el comando CREATE Function de PostgreSQL?
En PostgreSQL, si queremos especificar una nueva función definida por el usuario, podemos utilizar el comando CREATE FUNCTION.
Sintaxis del comando CREATE Function de PostgreSQL
La sintaxis del comando CREATE Function de PostgreSQL es la siguiente:
En la sintaxis anterior, hemos utilizado los siguientes parámetros, como se muestra en la siguiente tabla:
Parámetros | Descripción |
---|---|
nombre_de_la_función |
|
|
|
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.
Hemos utilizado los siguientes parámetros en la sección Header:
- Primordialmente, especificamos el nombre de la función como get_car_Price(), que se escribe después de la función create
- Después, la función get_car_Price() contiene dos parámetros Price_from y Price_to, que tienen un tipo de datos entero.
- Entonces, la función get_car_Price() recupera un entero definido por la condición return int.
- Y al final, hemos utilizado el lenguaje de la función como plpgsql.
- Hemos utilizado la ilustración stringconstant entre comillas de dólares en la sección de la función, que comienza con $$ y termina con $$.
- Entre el signo $$, podemos colocar un bloque, que abarca la declaración y la lógica de la función.
- En el bloque de declaración, declaramos una variable llamada Car_count,que almacena los coches seleccionados del Car
- En el cuerpo de la sección del bloque, hemos utilizado el comando SELECT INTO para seleccionar el Precio de los coches cuyos valores se encuentran entre Precio_desde y Precio_hasta y dar la salida al Recuento_de_coches
- Al final del bloque, hemos utilizado el comando RETURN para obtener el
- Crear función en PostgreSQL usando pgAdmin
- Crear función en PostgreSQL usando SQL Shell
- 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.
- For connecting a database, we will enter the below command:
- Notación posicional
- Notación con nombre
- La notación mixta
- Hemos utilizado el comando CREATE Function para crear una función definida por el usuario para la tabla en particular.
- Hemos entendido el proceso de llamar a una función definida por el usuario con la ayuda de diferentes notaciones como Positional, Named y Mixed.
Hemos utilizado los siguientes parámetros en la sección del cuerpo de la función:
Creación de una función en PostgreSQL
En PostgreSQL, podemos crear una función de dos maneras:
Crear función en PostgreSQL usando pgAdmin
Vamos a seguir el siguiente proceso para crear una función en pgAdmin:
Paso1
En primer lugar, abriremos la última versión pgAdmin en nuestro sistema local, y nos dirigiremos al árbol de objetos y nos conectaremos a la base de datos de ejemplo Javatpoint en la que queremos crear una función.
Paso2
Después, abriremos la herramienta de consulta haciendo clic en Query tool seguido de la sección Tools, como podemos ver en la siguiente captura:
Paso3
Para crear la función get_car_Price1(), utilizaremos el código anterior en la herramienta de consulta y haremos clic en el botón Execute.
Después de implementar el comando anterior, obtendremos la siguiente ventana de mensaje mostrando que la función get_car_Price1() ha sido creada con éxito en una base de datos similar.
Y, podemos identificar la función get_car_Price() en la lista de Funciones como podemos ver en la siguiente captura de pantalla:
Creating a function using SQL Shell(psql)
We are going to follow the below process to create a table in psql:
Step1
Step2
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:
Llamada a una función utilizando la notación posicional
Si queremos describir los argumentos en un orden similar al de los parámetros, podemos llamar a una función con la ayuda de la notación posicional.
Veamos un ejemplo de muestra para entender el funcionamiento de la Notación Posicional para llamar a una función concreta.
En el siguiente ejemplo, los argumentos de get_car_price() son 26000 y 70000, que equivalen a los parámetros Price_from y Price_to.
Salida
Obtendremos la siguiente salida al implementar el comando anterior, que recupera aquellas cuatro filas cuyo precio_coche está entre 26000 y 70000.
Cuando la función apenas tiene parámetros, podemos llamar a una función con la ayuda de la notación posicional.
Si la función contiene varios parámetros, podemos utilizar la notación con nombre para llamar a la función en particular porque el uso de la notación con nombre hará que la llamada a la función sea más comprensible.
Llamada a una función utilizando la notación con nombre
En el siguiente ejemplo, estamos mostrando el funcionamiento de la llamada a la función get_car_Price() utilizando la notación con nombre:
Salida
Obtendremos la siguiente salida al ejecutar el comando anterior, que muestra cuatro filas basadas en el rango anterior de car_price.
En la notación mencionada anteriormente, hemos utilizado el => para distinguir el nombre y el valor del argumento.
PostgreSQL permite la sintaxis más antigua creada en := para la compatibilidad con versiones anteriores, como podemos ver en el siguiente comando:
Salida
Después de ejecutar el comando anterior, obtendremos una salida similar en comparación con el resultado del comando anterior donde utilizamos el ‘=>’ en lugar de ‘:=’.
Llamada a una función utilizando la notación mixta
Es la agrupación de notaciones posicionales y con nombre.
Veamos un ejemplo para entender el funcionamiento de la Llamada a una función utilizando la notación mixta.
En la notación mixta, no podemos utilizar los Parámetros nombrados antes de los Parámetros posicionales.
Por ejemplo:
En el siguiente comando, utilizaremos la noción nominativa para el parámetro Price_from=>26000, mientras que para el parámetro Price_to, hemos utilizado la noción posicional como 70000, como podemos ver en el siguiente comando:
Salida
Después de ejecutar el comando anterior, PostgreSQL lanza un error, que dice que el argumento posicional no puede seguir al argumento nombrado.
Para resolver el error anterior, estamos utilizando la notación posicional y la notación con nombre para la función get_car_price() donde se utiliza el 26000 para representar la notación posicional; por otro lado, se utiliza Price_to=>70000 para representar la notación con nombre:
Salida
Tras ejecutar el comando anterior, obtendremos la siguiente salida, que devuelve aquellos coches cuyo precio_de_coche está entre 26000 y 70000.
Resumen
En la sección de funciones de PostgreSQL, hemos aprendido los siguientes temas: