Diferencia entre revisiones de «Mysql Funciones y Procedimientos almacenados»
Ir a la navegación
Ir a la búsqueda
| Línea 9: | Línea 9: | ||
| − | * El uso de los procedimientos puede deberse a | + | * El uso de los procedimientos puede deberse a varios motivos: |
:* Labores administrativas: procedimientos que realizan funciones de chequeo, seguimiento, registro de información que pueda ser relevante para un administrador. | :* Labores administrativas: procedimientos que realizan funciones de chequeo, seguimiento, registro de información que pueda ser relevante para un administrador. | ||
| Línea 18: | Línea 18: | ||
::: Impedimos que desde programas 'cliente' se pueda intentar ataques como los de [http://wiki.cifprodolfoucha.es/index.php?title=PHP_Paso_de_datos_con_formularios#Inxecci.C3.B3n_de_CSS inyección de CSS]. | ::: Impedimos que desde programas 'cliente' se pueda intentar ataques como los de [http://wiki.cifprodolfoucha.es/index.php?title=PHP_Paso_de_datos_con_formularios#Inxecci.C3.B3n_de_CSS 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. | ::* 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. | ||
| + | |||
| + | :* Conjunto de instrucciones que vamos a necesitar ejecutar varias veces en diferentes días. Podemos agrupar dichas órdenes en un proc. almacenado y llamarlo para que ejecute esas instrucciones y no tener que 'teclearlas' cada vez. | ||
Revisión del 17:42 1 feb 2018
Introducción
- Ya vimos en un punto anterior de la WIKI cuales son los permisos que debe poseer un usuario para poder crear, borrar, modificar y ejecutar 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 varios 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.
- Conjunto de instrucciones que vamos a necesitar ejecutar varias veces en diferentes días. Podemos agrupar dichas órdenes en un proc. almacenado y llamarlo para que ejecute esas instrucciones y no tener que 'teclearlas' cada vez.
- 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).