Crear procedimientos Almacenados en MySQL (MariaDB)
Un procedimiento es un conjunto de instrucciones que se almacenan en el servidor, para usarlas posteriormente, ya que se usarán frecuentemente y contienen acciones programadas, el uso de los procedimiento simplificará el uso de esas instrucciones, ya que no tendremos que volver a teclear todas las instrucciones, sino solamente invocaremos al procedimiento, la instrucción PROCEDURE, hace referencia al procedimiento almacenado, un procedimiento almacenado (SP) (Stored Procedure) acepta parámetros de entrada, para darle más dinamismo, pero para entenderlo mejor, como siempre nos pondremos manos a la obra y haremos lo que nos gusta, que es hacerlo.
Primero veamos algunas ventajas de utilizar los procedimientos almacenados
Primero veamos algunas ventajas de utilizar los procedimientos almacenados
Ventajas del uso de los procedimientos almacenados
- Seguridad: Los procedimientos ocultan el nombre de las tablas, de manera que nadie podrá saber que tablas se mandan llamar.
- Velocidad: Los procedimientos almacenados son más veloces, que ejecutar una a una las instrucciones, ya que están parametrizados.
- Estándares de programación: El uso de procedimientos almacenados es un estandard de la programación y su uso es recomendable
Ejercicio 1
Crear un procedimiento que muestre los equipos y los
estadios utilizando un STORED PROCEDURE
(SP) o PROCEDIMIENTO ALMACENADO
DROP PROCEDURE IF EXISTS estadiosxequipos;
DELIMITER $$
CREATE procedure estadiosxequipos()
BEGIN
select eq.idequipo, eq.abreviacion, eq.nombre, e.nombre as NombreEstadio, e.ciudad
from equipos eq
inner join estadios e
on e.idestadio=eq.idestadio;
END;
$$
DROP PROCEDURE IF EXISTS estadiosxequipos;
DELIMITER $$
CREATE procedure estadiosxequipos()
BEGIN
La instrucción BEGIN le indicará a la base de datos que comienza el bloque de instrucciones,
select eq.idequipo, eq.abreviacion, eq.nombre, e.nombre as NombreEstadio, e.ciudad
from equipos eq
inner join estadios e
on e.idestadio=eq.idestadio;
END;
$$
Para ejecutar un procedimiento almacenado lo invocaremos con la instrucción call de la siguiente manera:
call estadiosxequipos();
Como ven, en este ejemplo nos muestra la consulta realizada dentro del procedimiento almacenado, este ejemplo también podriamos realizarlo con una vista, en la imagen no se aprecia, pero muestra todos los equipos de la base de datos, con su respectivo estadio, este el un ejemplo muy sencillo de un SP, ya que no contiene parámetros y tampoco variables, pero veremos ejemplos más complejos. Por ejemplo, ¿que pasaría si yo quisiera los estadios de los equipos de un país en particular? Pues se podría hacer con un procedimiento almacenado con parámetros, veamos el siguiente ejemplo:
Ejercicio 2
Crear un procedimiento almacenado que nos
permita saber los equipos dados de alta y el estadio donde juegan, creando como
parámetro el código del país
DROP PROCEDURE IF EXISTS estadiosxequipos;
DELIMITER $$
CREATE procedure estadiosxequipos(pais varchar(3))
BEGIN
select eq.idequipo, eq.abreviacion, eq.nombre, e.nombre as NombreEstadio, e.ciudad
from equipos eq
inner join estadios e
on e.idestadio=eq.idestadio
inner join paises p
on p.codigopais = eq.codigopais
where eq.codigopais=pais;
END;
$$
CREATE procedure estadiosxequipos(pais varchar(3))
BEGIN
where eq.codigopais=pais;
Lo mandamos llamar de la siguiente manera:
call estadiosxequipos('MX')
Como ven, mandamos llamar únicamente los equipos de México, pero podríamos llamar los equipos de Francia, de la siguiente manera:
call estadiosxequipos('FRA')
Como pueden ver, basta con cambiar el parámetro para que cambie el resultado de la consulta.
Hasta aquí la primera parte de como crear procedimientos almacenados, en la próxima entrega veremos más ejemplos, mas complejos y más útiles de procedimientos almacenados, les pido compartan, den +1 o algún clic en algún anuncio que les interese, gracias y hasta la próxima.
Excelente Articulo me parece que lo adordas de una manera fácil y entendible :D muchas gracias.
ResponderBorrarEste comentario ha sido eliminado por el autor.
ResponderBorrar