Mysql Funciones y Procedimientos almacenados
Revisión del 16:42 26 ene 2018 de Wiki (discusión | contribuciones) (Página creada con «=Introducción= * Ya vimos en un [http://wiki.cifprodolfoucha.es/index.php?title=Mysql_Gesti%C3%B3n_de_permisos#Permisos_sobre_rutinas_.28proc.almacenados.2Ffunciones.29 p...»)
Introducción
- Ya vimos en un punto anterior de la WIKI cuales son los permisos que debe poseer un usuario para poder crear, borrar o modificar procedimientos almacenados y funciones.
- Podemos definir un procedimiento almacenado (store procedure) como un conjunto de órdenes SQL agrupadas bajo el nombre del procedimiento.
- De tal forma, que cuando un procedimiento se llama, se ejecutan todas las órdenes SQL del mismo.
- El uso de los procedimientos puede deberse a dos motivos:
- Labores administrativas: procedimientos que realizan funciones de chequeo, seguimiento, registro de información que pueda ser relevante para un administrador.
- Labores de control de acceso a la información de una base de datos.
- Utilizar procedimientos almacenados para acceder a los datos de las tablas tiene varias ventajas:
- Seguridad: El usuario no tiene acceso directo a la tabla por lo que no sabe nada de la misma y no puede realizar operaciones que no estén 'controladas' por el código del procedimiento almacenado.
- Impedimos que desde programas 'cliente' se pueda intentar ataques como los de inyección de CSS.
- Rendimiento: Las sentencias SQL que se encuentran en un procedimiento almacenado ya ha sido 'compiladas' para verificar que no tiene errores sintácticos. Una sentencia SQL enviada directamente por el cliente va a requerir algo más de tiempo que la misma sentencia en un procedimiento almacenado.
- Mysql identifica rutinas con procedimientos almacenados y funciones.
- Una función (function) es como un procedimiento almacenado, pero a diferencia del mismo, puede 'devolver' un valor escalar (un número) y se puede invocar desde dentro de un comando (por ejemplo dentro de la sentencia SELECT nombre_funcion() ).
- Un procedimiento almacenado se invoca con la orden: CALL nombre_proced_almacenado();
Procedimientos almacenados
Funciones
-- Ángel D. Fernández González -- (2017).