Está en la página 1de 12

PROCEDIMIENTOS

ALMANCENADOS.
Procedimientos
almacenados
•son conjuntos de comandos SQL
almacenados en el servidor, para que
nuestros clientes no tengan que ejecutar los
comandos individuales.
• Pueden ser llamados usando el nombre que se
le haya asignado.
•Pueden hacer referencia a tablas, vistas,
A un procedimiento lo
podemos:
1.CREAR
2.BORRAR
3.EJECUTAR
4.REEMPLAZAR.
SINTAXIS de un
procedimiento Almacenado:
• CREATE PROCEDURE nombreProcedimiento (Parametros)
• -> BEGIN
• -> Instrucciones….
• -> END
• los procedimientos en MySQL deben tener siempre un
• Nombre
• unos parámetros opcionales,
• unas características y una defición.
• PARAMETROS: Cuando creamos un Procedure,
podemos declarar parámetros de diferentes tipos
(INT, VARCHAR,etc).
Estos pueden ser de entrada (IN) o de salida (OUT),
o de entrada y salida(INOUT).
• IN: Parametro de entrada , no se puede cambiar la
información dentro del procedimiento:
• OUT: Parametro de salida , se puede cambiar la
info dentro del procedimiento.
EJEMPLO para la creación de
un procedimiento:
• CREATE PROCEDURE ‘SP_mostrarNombres’ ()
• BEGIN
• Select * from t_persona;
• END

• NOS REGRESA TODO LO QUE TIENE LA TABLA


t_persona.
EJEMPLO PARAR BORRAR:
•DROP PROCEDURE sp_mostrarNombres;

PARA EJECUTAR UN PROCEDIMIENTO EN


MYSQL :
•Call sp_mostrarNombres;
EJEMPLO INSERTAR:
• Create procedure ‘sp_InsertarNombre’ (In pnombre varchar(15), In
papellido varchar(20) )
• BEGIN
• INSERT INTO t_persona (nombre,apellido)//campos de la tabla t_persona
• Values (pnombre,papellido); //recibirá pnombre y papellido
• END
• PARA LLAMAR AL PROCEDIMIENTO:
• Call sp_insertaNombre(‘ Gerson’,’ Perez ‘);
• Para mostrar la tabla :
• Call sp_mostrarNombres;
Update:
• Create procedure ‘sp_ActualizarNombre’ (In pid_personaI int(20), In
pnombre varchar(15), In papellido varchar(20) )
• BEGIN
• Update T_persona SET nombre = pnombre,
• apellido=papellido
• Where id_persona = pid_personal;
• END
• PARA LLAMAR AL PROCEDIMIENTO:
• Call sp_ActualizarNombre( 1 , ‘ Juan’,’ Pablo ‘);
• Para mostrar la tabla :
• Call sp_mostrarNombres;
ELIMINAR
• Create procedure ‘sp_EliminarNombre’ (In pid_personaI int(20) )
• BEGIN
• Delete from t_persona where
• Id_persona = pid_personal;
• END
• PARA LLAMAR AL PROCEDIMIENTO:
• Call sp_eliminarNombre( 1 );
• Para mostrar la tabla :
• Call sp_mostrarNombres;
TRIGGERS
• El trigger o disparador MySQL es un objeto de la base de datos que está asociado
con tablas.
• El trigger se puede ejecutar cuando se ejecuta una de las siguientes sentencias
MySQL en la tabla: INSERT, UPDATE y DELETE. Se puede invocar antes o después
del evento.

• Ejemplo 1: ¿Por que quiero que se ejecute una acción cuando el usuario inserte un registro?
• Necesito llevar un registro de que usuarios de los que trabajan en esa BD, insertan registros y
cuando los han insertado. Se almacenaran que usuarios han insertado datos y cuando.
• El Trigger lo que hará es desencadenar un acción después de que cada usuario haya insertado
un registro en esa tabla.
• Ejemplo2: Antes de actualizar datos, el triggers genera una copia de respaldo en otra tabla.
ClASES DE TRIGGERS
• Trigger de filas y de sentencia: Cuando se define un trigger se
puede especificar el número de veces que se va a ejecutar la acción:

• Triggers BEFORE y AFTER: En este caso se determina el momento en


que se ejecuta la acción trigger, si antes o después de la sentencia
de disparo.

• Triggers INSTEAD OF: Estos triggers brindan una manera


transparente de modificar vistas que no pueden ser modificadas
directamente por medio de sentencias DML.

También podría gustarte