Este documento introduce los procedimientos almacenados en MySQL. Explica cómo crear y ejecutar procedimientos almacenados usando una base de datos de ejemplo con tablas de proveedores y partes. Muestra cómo crear un procedimiento almacenado de consulta simple y uno con parámetros, y cómo llamar a un procedimiento almacenado pasando un parámetro. También cubre algunas ventajas de los procedimientos almacenados como aislar la capa de acceso a datos y procesar datos antes de insertarlos o actualizarlos en las tabl
2. Introducción a los procedimientos
almacenados
En esta presentación mostraremos como crear y usar procedimientos almacenados en MySql.
Objetivo: Crear y ejecutar procedimientos almacenados.
3. Requerimientos
Trabajaremos con una base de datos en MySql, deberá tener instalada la versión 5.5.20 de MySql. Este
ejemplo se probó con MySql de WAMP Server (ver http://www.wampserver.com/en/ ). Con la interface
HeidiSQL (ver: http://www.heidisql.com/ ).
Y una base de datos para proveedores y partes llamada “provpar” con las tablas:
• proveedores
• Partes
Para instalar MySql y Heidi vea: http://es.slideshare.net/ltidesdaci/instalaciondmysqlwamp-y-heidisql
Para crear una base de datos en MySql usando Heidi vea: https://www.youtube.com/watch?v=40YYmufKXus
4. Base de datos
Usaremos una base de datos llamada provpar que consta de las tablas: proveedores y partes
que a continuación se muestran.
5. Base de datos – tabla partes
Estructura de
la tabla partes
6. Base de datos – tabla proveedores
Estructura de
la tabla
proveedores
7. Introducción
Un procedimiento almacenado o stored procedure (SP) es un archivo de código SQL que procesa
información de la base de datos, puede alterar la información de la base de datos (por ejemplo
en un alta de datos) o puede producir un resultado (por ejemplo en una sentencia select, para
mas información vea http://es.wikipedia.org/wiki/Procedimiento_almacenado).
Ventajas: una ventaja de los SP es que se ejecutan en el servidor y no en el cliente y dado que el
servidor tiene mas recursos de computo, los resultados se obtienen mas rápidamente. Otra
ventaja es que si se tienen varias aplicaciones que acceden a la base de datos, el mismo SP
puede servirles a todas lo cual reduce la cantidad de código necesario para la aplicación, de otro
modo se tendría que programar la misma funcionalidad en cada aplicación que realice el mismo
acceso a la base de datos. Otra ventaja es que aísla la capa de acceso a datos lo cual focaliza
posibles errores y facilita el mantenimiento.
8. Crear un SP de consulta
Para crear un SP que recupere los datos
de la tabla partes, en Heidi-SQL:
Hacemos:
1.
Abra una sesión en Heidi
2.
Clic derecho en La base de datos
3.
Clic izquierdo Crear nuevo
4.
Clic izquierdo Rutina almacenada
9. En la ventana de edición:
1. Ponga el nombre del
SP.
2. Inserte este código
de consulta.
3. Guarde el SP
10. Ejecutar un SP
1. En una ventana de
consulta.
2. Teclee el llamado a un SP:
call traePartes;
3. Ejecute
4. Vea el resultado
11. Parámetros en un SP
Suponga que tenemos los datos.
Pero queremos mostrar solo las partes
que tengan cierto costo dado, por
ejemplo todas las partes cuyo costo
unitario cu sea igual a 25. Para esto
podemos usar parámetros en un SP
12. Agregar parámetro. Clic En el SP a utilizar
1.
2.
3.
4.
Clic en parámetros
Clic en agregar
Poner nombre al parámetro
Poner tipo de datos del
parámetro
5. Clic en guardar
13. Utilizar el parámetro
Agregar el código necesario:
En este caso se requiere un
select de tal forma que el valor
de campo cu de la tabla partes
sea igual al parámetro dado
(llamado micosto en nuestro
ejemplo).
14. Llamar al SP con parámetro
Observe el valor mandado
como parámetro, en este
ejemplo, 25. Y el resultado:
los registros cuyo cu sea igual
a 25.
15. Ejemplo de insert con parámetros para una tabla
materia
1. Observe los parámetros y sus tipos
2. Algún procesamiento de los datos
antes de insertarlos
3. La inserción de datos
4. Lo que esta precedido por # son
comentarios
16. Procesamiento de los datos
Otra ventaja de los SP es que al recibir los datos por ejemplo de una inserción como
parámetros, dentro del SP se procesan estos datos antes de insertarlos, verificando su
contenido, por ejemplo en costo unitario podríamos verificar que el costo no sea negativo o por
ejemplo si el alumno esta dando el nombre de una materia que quiere dar de alta en su
kardex, antes de insertarla en el SP podemos revisar si la materia existe (aunque esto se revisa
mediante la integridad referencial el revisarlo antes evita que se dispare el error).
17. Lenguaje de SP en MySql
Para una referencia a los SP en Mysql vea:
http://dev.mysql.com/doc/refman/5.0/es/stored-procedure-syntax.html
http://www.mysqltutorial.org/introduction-to-sql-stored-procedures.aspx
http://www.mysqltutorial.org/mysql-if-statement/
http://www.mysqltutorial.org/mysql-case-statement/