Está en la página 1de 10

BASE DE DATOS II

INGENIERIA DE SISTEMAS

PROCEDIMIENTOS ALMACENADOS
DEFINIDOS POR EL USUARIO

Un procedimiento almacenado es una coleccin de sentencia SQL, que estn


guardadas en el servidor. Estas son un mtodo de encapsular tareas repetitivas
que se ejecutan eficazmente.
Los procedimientos almacenados pueden :
Aceptar parmetros de entrada y devolver varios valores en forma de
parmetros de salida al lote o al procedimiento que realiza la llamada.
Contener instrucciones de programacin que realice las operaciones en la base
de datos, incluidas las llamadas a otros procedimientos.
devolver un valor de estado a un lote o a un procedimiento que realiza una
llamada para indicar si la operacin se ha realizado correctamente o hubo un
error(y el motivo del mismo).

ING. IVAN IMAN AGURTO

BASE DE DATOS II

INGENIERIA DE SISTEMAS

Beneficios de los procedimientos almacenados:

Simplifican la ejecucin de tareas repetitivas


Corren ms rpido que las mismas instrucciones ejecutadas en forma
interactiva
Reducen el trfico a travs de la red
Pueden capturar errores antes que ellos puedan entrar a la base de datos
Establece consistencia porque ejecuta las tareas de la misma forma
Permite el desarrollo modular de aplicaciones
Ayuda a proveer seguridad
Puede forzar reglas y defaults complejos de los negocios

Ventajas de los procedimientos:

Un procedimiento almacenado se ejecuta ms rpido que un batch porque:


El procedimiento almacenado ya ha sido analizado
Ya se han resuelto las referencias a los objetos referenciados en el
procedimiento almacenado
No se necesita construir el rbol de bsqueda, l usa el que se hace en el
momento de compilarlo
No se necesita crear un plan de bsqueda, porque ya el procedimiento
tiene uno

Tipos de Procedimientos Almacenados

1. Procedimientos almacenados sin parmetros


2. Procedimientos almacenados con parmetros

ING. IVAN IMAN AGURTO

BASE DE DATOS II

INGENIERIA DE SISTEMAS

Procedimiento almacenados sin parmetros

BEGIN......END $$

Permite definir un bloque de instruccin. La utilizacin del Begin...End permite


ejecutar un grupo de instrucciones. Normalmente Begin suele ir inmediatamente
despus de un IF, ELSE, WHILE

Delimiter

Ya que hay que cambiar el delimitador, ya que dentro de los Stored Procedures
se utilizan puntos y comas; y pues al poner estos te marcara un error si no
cambias el delimitador. El delimitador pude ser casi cualquier carcter
ING. IVAN IMAN AGURTO

BASE DE DATOS II

INGENIERIA DE SISTEMAS

Sintaxis :

DELIMITER $$
Procedimiento almacenado
DELIMITER ;

Call
Una vez diseado el procedimiento almacenado lo podemos ejecutar utilizando
Call y te mostrara los valores del resultado del procedimiento

Sintaxis :

Call NombredelProcedimietoAlmacenado();

Drop Procedure

Este comando se usa para borrar un procedimiento o funcin almacenado. Esto es,
la rutina especificada se borra del servidor.
La clusula IF EXISTS es una extensin de MySQL . Evita que ocurra un error si la
funcin o procedimiento no existe. Se genera una advertencia que puede verse con
SHOW WARNINGS.

ING. IVAN IMAN AGURTO

BASE DE DATOS II

INGENIERIA DE SISTEMAS

Caso practico: ventas

Elaborar la base de datos ventas que utilizaremos en las siguientes


sesiones , debemos considerar el ingreso de 10 registros por cada
tabla.

Pasos para crear procedimientos almacenados


1. seleccionar la opcin Stored Procs de la base de datos ventas

ING. IVAN IMAN AGURTO

BASE DE DATOS II

INGENIERIA DE SISTEMAS

2.Seleccionar la opcin Create Storep Procedure

3. Ingresamos el nombre del procedimiento y

ING. IVAN IMAN AGURTO

BASE DE DATOS II

INGENIERIA DE SISTEMAS

Ejemplo 1:
Disear un procedimiento almacenado que muestre la informacin de la tabla
categoras
Solucin:

Ntese que al final de la instruccin SQL lleva un punto y coma. El


procedimiento debe ejecutarse en el boton

Ejecutar :

ING. IVAN IMAN AGURTO

BASE DE DATOS II

INGENIERIA DE SISTEMAS

Ejemplo 2:
Disear un procedimiento almacenado que muestre la todos los datos de los
productos cuyo precio se encuentra entre 10 y 100.
Solucin:
Solucin:

Ejecutar :

Ejecutar :

Si se tiene mas de una lnea en el Query se debe seleccionar en el


que se desea ejecutar.

la lnea

ING. IVAN IMAN AGURTO

BASE DE DATOS II

INGENIERIA DE SISTEMAS

Ejemplo 3:
Disear un procedimiento almacenado que muestre la todos los datos de los
productos que pertenecen a la categora Accion.
Solucin:
Solucin:

Ejecutar :

ING. IVAN IMAN AGURTO

BASE DE DATOS II

INGENIERIA DE SISTEMAS

Resumen
Los procedimientos almacenados son apoyados en la versin 5.0 MySQL. Un
procedimiento almacenado es un juego de declaraciones SQL que pueden ser
almacenadas en el servidor. Una vez que este ha sido hecho, los clientes no
tienen que seguir reeditando las declaraciones individuales, pero pueden
referirse al procedimiento almacenado en cambio.

Los procedimientos almacenados estn compuestos por algunos de estos


elementos:
Parmetros de entrada
Parmetros de salida
Declaracin de variables
Cuerpo del procedimiento
Tanto los parmetros de entrada como los de salida son opcionales. Podemos
tener un procedimiento que no tenga parmetros de entrada, pero s de salida y
a la inversa.

Los procedimientos almacenados permiten aprovechar los recursos del servidor,


ahorrar tiempo creando consultas complejas desde el servidor.

ING. IVAN IMAN AGURTO

También podría gustarte