# Funciones almacenadas 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 ``` ## Implementación 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 ; ``` ### Borrar Si existe *Sintaxis* ``` DROP FUNCTION IF EXISTS calcularGanancia; ``` ### Uso de la funcion creada *Sintaxis* ``` select nombre, precio, preciocompra, calcularGanancia(precio, preciocompra) as ganancia from productos; ```