Las funciones almacenadas de MySQL nos permiten procesar y manipular datos de forma procedural de un modo muy eficiente. Podrás usarlas en las sentencias SQL independientemente del lenguaje de programación del servidor sobre el que se ejecuten las consultas.
Sintaxis
CREATE FUNCTION nombre_funcion(param1, param2,…)
RETURNS datatype
[NOT] DETERMINISTIC
sentencias_sql
Crearemos una función que permitira saber cuanta ganancia tenemos en la venta de un producto.
Sintaxis
DROP FUNCTION IF EXISTS puntodeventa.calcularGanancia;
DELIMITER $$
$$
CREATE FUNCTION calcularGanancia(precio float, preciocompra float)
RETURNS float
begin
DECLARE ganancia FLOAT(9,2);
SET ganancia = preciocompra - precio;
RETURN ganancia;
END$$
DELIMITER ;
Sintaxis
DROP FUNCTION IF EXISTS calcularGanancia;
Sintaxis
select nombre, precio, preciocompra, calcularGanancia(precio, preciocompra) as ganancia from productos;