JUNE 15, 2021 - 18H Meeting with Company A JULY 11, 2021 - 11H Meeting with Company A JUNE 15, 2021 - 15H Meeting with Company A AUGUST 8, 2021 - 16H Meeting with Company A JUNE 15, 2021 - 15H // JUNIO Meeting with Company2021 A RIL 15, 2021 - 15H ting with Company A Meeting with Company A TECNOLÓGICO NACIONAL DE MÉXICO INSTITUTO TECNOLÓGICO DE ACAPULCO TEMA: PROCEDIMIENTOS ALMACENADOS JUNE 15, 2021 - 18H ALUMNO: ADÁN ALDAHIR ALCARAZMeeting JACOBO with Company A JUNE 15, 2021 - 15H No. De control: 18320793 Meeting with Company A JUNE 15, 2021 - 15H Meeting with Company A MARCH 22, 2021 - 15H // ¿Que es un procedimiento almacenado? Un procedimiento almacenado MySQL no es más que una porción de código que puedes guardar y reutilizar. Es útil cuando repites la misma tarea repetidas veces, siendo un buen método para encapsular el código. Al igual que ocurre con las funciones, también puede aceptar datos como parámetros, de modo que actúa en base a éstos. Para poder crear un procedimiento almacenado es necesario que tengas permisos INSERT y DELETE sobre la base de datos // Crear procedimientos almacenados MySQL Los procedimientos almacenados se implementan desde la versión 5.0 de MySQL y se puede crear en casi todas las bases de datos, como Oracle, MySQL Server y Postgress SQL. Para crear y gestionar los procedimientos almacenados MySQL existe una serie de comandos dedicados: ALTER CREATE PROCEDURE PROCEDURE Con esta sentencia Nos permite crear podemos modificar los procedimientos procedimientos almacenados MySQL para almacenados MySQL. su posterior ejecución. 01 02 Crear procedimientos almacenados MySQL SINTAXIS DROP Nos permite eliminar los PROCEDURE procedimientos almacenados MySQL. 03 Permite crear un delimitador para las consultas SQL. La sintaxis de un procedimiento almacenado es la siguiente: DELIMETER 04 SINTAXIS Para ejecutar un procedimiento almacenado lo invocamos así: En la versión de SQL de Oracle también podemos invocar al procedimiento así. Parámetros Los parámetros son variables que se envían y reciben de los programas a los que se llaman. Se definen en la cláusula CREATE de creación de los procedimientos de la siguiente forma: Los parámetros de los procedimientos almacenados de MySQL pueden ser de tres tipos: IN OUT INOUT Parámetros. IN IN Es el tipo de parámetro que se usa por defecto. La aplicación o código que invoque al procedimiento tendrá que pasar un argumento para este parámetro. El procedimiento trabajará con una copia de su valor, teniendo el parámetro su valor original al terminar la ejecución del procedimiento. El valor de este parámetros pude ser cambiado en el procedimiento, y además su valor modificado será enviado de vuelta al código o programa que invoca el procedimiento. OUT // PARÁMETROS Es una mezcla de los dos conceptos anteriores. La aplicación o código que invoca al procedimiento puede pasarle un valor a éste, devolviendo el valor modificado al terminar la ejecución. INOUT //Configuración de la base de datos A modo de ejemplo, veremos como configurar una base de datos sobre la cual crearemos luego un procedimiento almacenado. Usaremos la línea de comandos, pero también se puede crear una base de datos MySQL mediante otros métodos. Conéctate a MySQL con este comando, reemplazando usuario por tu nombre de usuario. Vamos a ver como crear una base de datos de nombre base_ejemplo. Para ello seguiremos estos pasos: 1.- Usa la sentencia create para crear la base de datos: 2.- Ahora usa el siguiente comando para seleccionar la base de datos: Si se usa phpMyAdmin, sencillamente se debe hacer clic en el nombre de la base de datos, que en este caso es base_ejemplo. Ahora crea una tabla en la base de datos a la que llamaremos productos. Para hacerlo, ejecuta el siguiente comando: Ahora vamos a insertar algunos datos de prueba en la tabla productos: Ya tenemos la base de datos creada. Ahora vamos a crear un procedimiento almacenado. INSERT INTO productos (nombre, estado, precio) VALUES ('Producto A','disponible', 8), ('Producto B', 'disponible', 1.5),('Producto C', 'agotado', 80); Cómo crear un Al definir los procedimientos, tendremos que usar procedimiento delimitadores para indicar a MySQL que se trata de un almacenado bloque independiente. DELIMITER $$ frena la ejecución de MySQL, que se retomará de nuevo en la sentencia DELIMITER del final. Procedimiento almacenado con parámetros IN 1.-Vamos a obtener los productos que tienen un determinado estado. Como se ve a continuación. DELIMITER $$ CREATE PROCEDURE obtenerProductosPorEstado(IN nombre_estado VARCHAR(255)) BEGIN SELECT * FROM productos WHERE estado = nombre_estado; END$$ DELIMITER 2.- El nombre del estado está contenido en el parámetro nombre_estado que hemos definido como IN. Suponiendo que quieras obtener los productos con estado disponible, tendrías que invocar al procedimiento de este modo 3.- Resultado: Procedimiento almacenado con parámetros OUT 1.-Vamos a obtener el número de productos según su estado. 3. Resultado: 2. Al igual que antes, pasamos el estado como nombre_estado, definido como IN. También definimos numero como parámetro OUT. Suponiendo que quieras obtener el número de productos con estado disponible, debes llamar al procedimiento de este modo: 3.- Para obtener el número de productos agotados, debemos invocar al procedimiento de este modo: Resultado: Procedimiento almacenado con parámetros INOUT 1.-Se creara un procedimiento que incremente una variable llamada beneficio cuando se vende un producto. 2.-En el procedimiento pasamos el parámetro beneficio como INOUT para que mantenga su valor tras la ejecución del procedimiento También definimos el parámetro id_producto como IN para decirle al procedimiento el producto que queremos vender. Para simplificar las cosas partimos de que el producto está siempre disponible. Vamos a vender algunos productos para ver cómo cambia la variable: Resultado Cómo borrar un procedimiento almacenado Puedes borrar un procedimiento almacenado haciendo uso de la sentencia DROP PROCEDURE. Por ejemplo, si quieres eliminar el procedimiento venderProducto del ejemplo anterior, tendrás que ejecutar esta sentencia: DROP PROCEDURE venderProducto; LINKOGRAFÍA 1.- https://www.neoguias.com/procedimientosalmacenados-mysql/#Sintaxis ICONS 2.https://www.cartagena99.com/recursos/alumnos /apuntes/2_programas_almacenados.pdf 3.-https://blog.mdcloud.es/procedimientosalmacenados-mysql-que-son-como-crearlos-yventajas/