Sintaxis
La sintaxis de la función PostgreSQL se da a continuación.
Crear o reemplazar función function_name (argument_list)Requisitos previos
A. Instale el PostgreSQL
Debe instalar la última versión de los paquetes PostgreSQL en el sistema operativo Linux antes de ejecutar las declaraciones SQL que se muestran en este tutorial. Ejecute los siguientes comandos para instalar e iniciar el PostgreSQL:
$ sudo apt-get -y instalación postgresql postgresql-contrib
$ sudo systemctl iniciar postgresql.servicio
Ejecute el siguiente comando para iniciar sesión en PostgreSQL con privilegio raíz.
$ sudo -u postgres psql
B. Puede crear una base de datos con nombre "TestDB" ejecutando la siguiente instrucción SQL.
# Crear base de datos TestDB;Si quieres crear una tabla en el testdb base de datos, entonces tienes que escribir "\C" Para cambiar la base de datos. Pero en este tutorial, no cambié la base de datos y la tabla, y todas las funciones se crearon en la base de datos predeterminada nombrada post -put.
C. Cree una tabla con nombre de productos con cuatro campos e inserte cuatro registros en la tabla para probar las funciones definidas por el usuario que se crearán más adelante en este tutorial.
# Crear productos de mesa (D. Inserte cuatro registros en la tabla.
# Inserte en productos (nombre, tipo, precio)Diferentes ejemplos de funciones definidas por el usuario de PostgreSQL
Los usos de las funciones definidas por el usuario con argumento y sin argumento en PostgreSQL se han mostrado a continuación utilizando múltiples ejemplos.
Ejemplo-1: función definida por el usuario sin argumento y valor de retorno
Ejecute la siguiente instrucción SQL para crear una función nombrada function1 () sin ningún argumento, y la función no devolverá nada. La función actualizará el registro de la tabla de productos donde el valor de identificación es 3 después de la ejecución.
# Crear o reemplazar la función de la función1 ()La siguiente salida aparecerá si la función se crea correctamente en el post -put base de datos.
Ejecute la siguiente instrucción SQL para leer todos los registros del productos tabla antes de ejecutar function1 ().
# Seleccionar * de productos;La siguiente salida muestra los registros insertados del productos mesa.
Ejecute la siguiente instrucción SQL para ejecutar la función.
# Seleccionar function1 ();
La siguiente salida muestra que una fila se ve afectada al llamar a la función function1 (). El valor del campo de precio de la tabla se actualizará donde el valor de identificación es 3.
Ejecute la siguiente instrucción SQL para leer todos los registros del productos tabla después de ejecutar function1 ().
# Seleccionar * de productos;La siguiente salida muestra que el valor del precio de la tabla de productos se ha actualizado donde el valor de identificación es 3, y ahora es de 1500.
Ejemplo-2: función definida por el usuario con argumento
El argumento predeterminado de la función está en argumento. Ejecute la siguiente instrucción SQL para crear una función nombrada function2 () con dos argumentos, y la función no devolverá nada. La función insertará un nuevo registro en el productos tabla con los valores de argumento.
# Crear o reemplazar la función de la función2 (nombre Varchar, type varchar, precio int)
La siguiente salida aparecerá si la función se crea correctamente en el post -put base de datos.
Ejecute la siguiente instrucción SQL para ejecutar la función tres en los valores de argumento. Estos son "iPhone", "móvil" y 2000.
# Seleccionar function2 ('iPhone', 'móvil', 2000);La siguiente salida muestra que una fila se ve afectada al llamar a la función function2 (), y se insertará un nuevo registro en la tabla.
Ejecute la siguiente instrucción SQL para leer todos los registros del productos tabla después de ejecutar function2 ().
# Seleccionar * de productos;La siguiente salida muestra que se ha insertado un nuevo registro en el productos mesa.
Ejemplo-3: función definida por el usuario sin argumento
El argumento de salida se usa para devolver el valor de la función. Ejecute la siguiente instrucción SQL para crear una función nombrada function3 () con un argumento de un tipo de dinero, y la función devolverá los datos del tipo de dinero. La función devolverá el valor asignado del argumento de salida.
# Crear o reemplazar la función de la función3 (precio de precio)
La siguiente salida aparecerá si la función se crea correctamente en el post -put base de datos.
Ejecute la siguiente instrucción SQL para eliminar los registros de la tabla de productos en función del valor devuelto por function3 ().
# Eliminar de los productos donde el precio <= function3();
La siguiente salida muestra que tres filas se ven afectadas llamando a la función function3 (). El valor devuelto de la función es de 1000, que coincide con los tres registros del productos mesa donde el identificación Los valores son 1, 2, y 4.
Ejecute la siguiente instrucción SQL para leer todos los registros del productos tabla después de ejecutar function3 (). La salida muestra que existen dos registros en la tabla donde el precio Los valores son más de 1000.
# Seleccionar * de productos;La siguiente salida muestra que se han eliminado 3 registros del productos mesa.
Ejemplo-4: función definida por el usuario con argumento inout
El argumento inout se usa en la función para pasar valores en la función y return valores de la función. Ejecute la siguiente instrucción SQL para crear una función nombrada calcular() con un argumento inout del tipo flotante y un argumento del tipo entero. La función devolverá los datos del tipo de flotación. La función se ejecutará con el monto de las ventas, que será un valor flotante, y el descuento, que será un entero. El monto de las ventas después del descuento se calculará en función de los valores de argumento en. A continuación, el monto de las ventas calculado se devolverá de la función utilizando el argumento de salida.
# Crear o reemplazar la función calcular (La siguiente salida aparecerá si la función se crea correctamente en el post -put base de datos.
Ejecute la siguiente declaración para ejecutar la función con 10000 como el monto de las ventas y 5 como el monto del descuento
#Select Calcule (10000, 5) como descuento_amount;El 5% de 10000 es 500 y 10000-500 = 9500. El siguiente resultado muestra el monto de las ventas después de un descuento del 5%.
Ejemplo-5: usuario-Defusión Función con el Sentencia condicional
Ejecute la siguiente instrucción SQL para crear una función nombrada Search_product () con un argumento, y la función devolverá los datos del tipo VARCHAR. La forma de declarar la variable de función y el uso de la declaración condicional se ha mostrado en esta función. La variable de función nombrada nombre del producto ha sido definido con el Nombre tipo de la productos mesa. El valor de en el argumento, TP, se combinará con el valor del tipo campo de la productos mesa. Si no se encuentra ninguna coincidencia en la tabla, se planteará un error con el mensaje, "el tipo de producto no existe". Si se encuentra alguna coincidencia, entonces el valor del Nombre El campo de ese tipo de producto se almacenará en la variable de función, y la variable se devolverá desde la función.
# Crear o reemplazar la función Search_Product (TP Varchar)La siguiente salida aparecerá si la función se crea correctamente en el post -put base de datos.
Ejecute la siguiente instrucción SQL para leer todos los registros de la tabla de productos.
# Seleccionar * de productos;Ejecute la siguiente instrucción SQL para ejecutar la función Search_Product () con el tipo de producto "Móvil".
# Seleccione Search_Product ('mobile');Ejecute la siguiente instrucción SQL para ejecutar la función Search_Product () con el tipo de producto "C.A".
# Seleccione Search_Product ('AC');La siguiente salida muestra que el productos La tabla contiene dos registros de valores de tipo ","TELEVISOR" y "Móvil". La salida de la primera ejecución de la función ha devuelto "iPhon" porque el tipo de producto "móvil" existe en la tabla. La salida de la segunda ejecución de la función ha devuelto un mensaje de error porque el tipo de producto "AC" no existe en la tabla.
Ejemplo-6: función definida por el usuario con función agregada
Cualquier función agregada compatible con SQL se puede usar en la función PostgreSQL. Ejecute la siguiente instrucción SQL para crear una función nombrada count_product () sin ningún argumento, y la función devolverá los datos del tipo entero. La función agregada Count () se ha utilizado en la función que se utiliza para contar el número de filas en función de la condición específica. Aquí, una variable de función llamada Total_Product se ha declarado en la función para almacenar el valor de retorno de la función Count (). La función Count () se ha utilizado en la consulta SELECT para contar los registros donde el nombre del producto comienza con la palabra "Sony".
# Crear o reemplazar funciones count_product ()La siguiente salida aparecerá si la función se crea correctamente en el post -put base de datos.
Ejecute el siguiente comando para ejecutar la función, count_product ().
# Seleccionar count_product ();La siguiente salida muestra que la función count () devuelve el valor 1 porque solo hay un registro que coincide con el valor, "Sony".
Conclusión
El propósito de usar funciones PostgreSQL y diferentes formas de usar funciones PostgreSQL con argumentos in, out e inout se han descrito en este tutorial mediante la creación de múltiples funciones PostgreSQL. El argumento en el argumento se usa para tomar valor en la función. El argumento de salida se usa para devolver el valor de la función. El argumento de inout se usa para tomar el valor de entrada a la función y devolver la salida de la función. La función se puede crear sin ningún argumento también. Espero que el usuario pueda crear y usar la función PostgreSQL correctamente después de leer este tutorial.