Anda di halaman 1dari 11

UNIVERSISDAD CATÒLICA LOS ÁNGELES DE CHIMBOTE

FILIAL – PIURA

TEMA:

PROCEDIMIENTOS ALMACENADOS PARA INSERTAR Y ELIMINAR


UTILIZANDO PARAMETROS Y SIN PARAMETROS

CURSO:

Base de datos II

DOCENTE:

ING. OSWALDO GABIEL CORONADO ZULOETA

INTEGRANTES:

REYES NEIRA DIANA

NAVARRO YAMUNAQUE LIDIA

ZEÑA CARRAZCO ANDER

PIURA - 2017
INTORDUCCIÒN

Este informe trata de los procedimientos almacenados para insertar y eliminar con

parámetros y sin parámetros en MYSQL tema relevante que nos será útil en nuestra

carrera profesional como estudiantes nos ayuda a una creación correcta de una base de

datos.

Justifico este tema porque es de mucha importancia para nosotros conocer sobre los

procedimientos almacenados para insertar y eliminar utilizando parámetros y sin

parámetros en los gestores de base de datos de MYSQL y poder trabajar sin ningún

problema , ya que el tema es una herramienta muy útil en nuestra carrera profesional y

necesaria que la usaremos siempre ya sea para desempeñar nuestra propia profesión o

quizá en el futuro en nuestra propia empresa para de esa manera poder desarrollar un

sistema de base de datos en una empresa de manera más rápida y sencilla .

La importancia de este tema radica en poder resumir de manera muy concreta y fácil de

entender los procedimientos almacenados para insertar y eliminar utilizando parámetros

y sin parámetros en MYSQL el cual es un programa que se almacena físicamente en una

tabla dentro del sistema de bases de datos. Este programa está hecho con un lenguaje

propio de cada Gestor de BD y esta compilado, por lo que la velocidad de ejecución

será muy rápida.


PROCEDIMIENTOS ALMACENADOS PARA INSERTAR Y ELIMINAR

UTILIZANDO PARAMETROS Y SIN PARAMETROS

Procedimiento almacenado: Es un programa que se almacena físicamente en una tabla

dentro del sistema de bases de datos. Este programa está hecho con un lenguaje propio

de cada Gestor de BD y esta compilado, por lo que la velocidad de ejecución será muy

rápida (1).

Cuando llamamos a un procedimiento almacenado, este deberá realizar todas las

comprobaciones pertinentes de seguridad y seleccionará la información lo más

precisamente posible, para enviar de vuelta la información justa y necesaria y que por la

red corra el mínimo de información, consiguiendo así un aumento del rendimiento de la

red considerable (1).

El procedimiento almacenado podrá ser invocado desde cualquier parte del programa, y

no tendremos que volver a armar la consulta a la BD cada que vez que queramos

obtener unos datos (2).

Un procedimiento almacenado se invoca mediante el CALLcomunicado (3).

Los procedimientos almacenados, podemos pensarlos como si fueran pequeños

programas individuales dentro de nuestra base de datos. Estos “programas” pueden ser

utilizados por aplicaciones externas o ser programados para que se ejecuten en el

tiempo. Son más poderosos ya que sí pueden modificar datos, llamar a otros

procedimientos almacenados, utilizar funciones. Por ejemplo como crear

procedimientos almacenados para insertar y eliminar utilizando parámetros y sin

parámetros utilizamos tablas y campos del proyecto (3).

Un procedimiento almacenado pueden incluir cualquier cantidad y tipo de instrucciones

DML (de manipulación de datos, como insert, update, delete), no instrucciones DDL

(de definición de datos, como create..., drop..., alter...) (3).


Creando procedimiento almacenado:

Para crear un procedimiento almacenado empleamos la instrucción "create procedure".


La sintaxis básica parcial es:

1. DELIMITER $$
2. CREATE PROCEDURE nombre_procedimiento(parameter[parameter_name
[type]])
3. BEGIN
4. Instrucciones
5. END $$

El comando CALL invoca un procedimiento definido previamente con CREATE


PROCEDURE.

CALL puede pasar valores al llamador usando parámetros declarados como OUT o
INOUT . También “retorna” el número de registros afectados.

CALL nombre_procedimiento (‘dato1’,’dato2’,...)

El delimiter le dice a MySQL que a partir de ahora hasta que no introduzcamos // no se

acaba la sentencia, esto lo hacemos así porque en nuestro procedimiento almacenado

tendremos que introducir el caracter “;” para las sentencias, y si pulamos enter MySQL

pensará que ya hemos acabado la consulta y dará error (4).

Con create procedure empezamos la definición de procedimiento con

nombre_procedimiento. En un procedimiento almacenado existen parámetros de entrada

y de salida, los de entrada (precedidos de “in”) son los que le pasamos para usar dentro

del procedimiento y los de salida (precedidos de “out”) son variables que se

establecerán a lo largo del procedimiento y una vez esta haya finalizado podremos usar

ya que se quedaran en la sesión de MySQL (5).

El bloque de instrucciones comienza luego de "begin" y acaba con "end".

Para diferenciar los procedimientos almacenados del sistema de los procedimientos

almacenados creados por el usuario use un prefijo, por ejemplo "pa_" cuando les del

nombre.
PROCEDIMIENTO ALMACENADO INSERT:

1. DELIMITER $$
2. CREATE PROCEDURE name_insert(parameter[parameter_name
[type]],....)
3. BEGIN
4. INSERT INTO nombretabla(campo1,campo2,campo3,...)
5. VALUES (parameter_name,...);
6. END $$
7. DELIMITER ;

Para hacer una llamada a nuestro procedimiento almacenado usaremos la


sentencia call:

call name_insert('dato1','dato2',...);

PROCEDIMIENTO ALMACENADO DELETE:

1. DELIMITER $$
2. CREATE PROCEDURE name_delete(parameter[parameter_name [type]])
3. BEGIN
4. DELETE FROM nombretabla where campo1 = parameter_name;
5. END $$
6. DELIMITER ;

Para hacer una llamada a nuestro procedimiento almacenado usaremos la


sentencia call:

call name_delete('dato1') (6);

CREACION DE LA BASE DE DATOS

 create database ander;

 use ander;

 create table categoria(idcategoria char(4)not null,


nombre varchar(30), desripcion varchar(30),
primary key(idcategoria));

 create table cliente(idcliente char(4)not null,


nombre varchar(30), apellido varchar(30),
direciion varchar(30), fecha_nacimiento date,
telefono char(9), email varchar(30),
primary key(idcliente));

 create table producto(idproducto char(4) not null,


idcategoria char(4)not null, nombre varchar(30), precio
decimal, stock int, primary key (idproducto),
index(idcategoria), foreign key(idcategoria) references
categoria(idcategoria));

 create table pago(idpago char(4)not null,


nombre varchar(30), otros_detalles varchar(30),
primary key(idpago));
 create table factura(idfactura char(4)not null,
idcliente char(4) not null, idprducto char(4) not null,
idpago char(4) not null, fecha date,
primary key(idfactura),
index(idcliente), foreign key(idcliente) references
cliente(idcliente),
index(idprducto), foreign key(idprducto) references
producto(idproducto),
index(idpago), foreign key(idpago) references
pago(idpago));

 create table detalle(iddetalle char(4)not null,


idfactura char(4)not null,idproducto char(4)not null,
cantidad int, precio decimal,
primary key(iddetalle),
index(idfactura), foreign key(idfactura) references
factura(idfactura),
index(idproducto), foreign key(idproducto) references
producto(idproducto));

PROCEDIMIENTO ALMACENADO INSERTAR CON PARAMETROS:


Procedimiento almacenado crearcliente:

delimiter $$

create procedure crearcliente(in pa_idcliente char(4), in


pa_nombre varchar(30), in pa_apellido varchar(30),in
pa_direccion varchar(30), in pa_fecha_nacimiento date, in
pa_telefono char(9), in pa_email varchar(30))

begin

insert into
cliente(idcliente,nombre,apellido,direccion,fecha_nacimiento,tel
efono,email)

values
(_idcliente,_nombre,_apellido,_direccion,_fecha_nacimiento,_tele
fono,_email);

end$$

/*Insertar datos en la tabla cliente*/

call crearcliente('0001','Jose','zeña carrasco','ica 256','2017-


05-13',990727982,'ander_zc01@hotmail.com');

call crearcliente('0002','Juan',huaman castro,lima 236','2017-


06-23',968229821,juan01@gmail.com');
Procedimiento almacenado crearcategoria:

delimiter $$

create procedure crearcategoria(in pa_idcategoria char(4), in


pa_nombre varchar(30), in pa_decripcion varchar(30))

begin

insert into categoria(idcategoria,nombre,descripcion)

values (pa_idcategoria,pa_nombre,pa_descripcion);

end$$

/*insertar datos en la tabla categoria*/

call crearcategoria('c001','lacteos','son productos altamente


perecederos');

call crearcategoria('c002','frutas', frutos comestibles obtenidos


de plantas cultivada);

Procedimiento almacenado crearpago:

delimiter $$

create procedure crearpago(in pa_idpago char(4), in pa_nombre


varchar(30), in pa_otros_detalles varchar(30))

begin

insert into pago(idpago,nombre,otros_detalles)

values (pa_idpago,pa_nombre,pa_otros_detalles);

end$$

/*insertar datos en el procedimiento crearcategoria*/

call crearpago('p001','tarjeta','se cobran intereses');

Procedimiento almacenado crearproducto:

delimiter $$

create procedure crearproducto(in pa_idproducto char(4), in


pa_idcategoria char(4), in pa_nombre varchar(30), in pa_precio
decimal,in pa_stock int)

begin

insert into producto(idproducto,idcategoria,nombre,precio,stock)

values
(pa_idproducto,pa_idcategoria,pa_nombre,pa_precio,pa_stock);
end$$

/*insertar datos en el procedimiento crearcategoria*/

call crearproducto('p01','c001','leche',3.50,6);

call crearproducto('p02','c002','piña',4.67,8);

Procedimiento almacenado crearfactura:

delimiter $$

create procedure crearfactura(in pa_idfactura char(4), in


pa_idcliente char(4), in pa_idproducto char(4),

in pa_idpago char(4),in pa_fecha date)

begin

insert into factura(idfactura,idcliente,idproducto,idpago,fecha)

values (pa_idfactura,pa_idcliente,pa_idpago,pa_fecha);

end$$

/*insertar datos en el procedimiento crearcategoria*/

call crearfactura('f001','0001','p01','p001','2017-06-23');

call crearfactura('f002','0002','p02','p002','2017-08-12');

Procedimiento almacenado creardetalle:

delimiter $$

create procedure creardetalle(in pa_id_detalle char(4), in


pa_idfactura char(4), in pa_idproducto char(4),

in pa_cantidad int,in precio decimal)

begin

insert into
detalle(iddetalle,idfactura,idproducto,cantidad,precio)

values
(pa_iddetalle,pa_idfactura,pa_idproducto,pa_cantidad,pa_precio);

end$$

/*insertar datos en el procedimiento crearcategoria*/

call creardetalle('d001','f001','p01',5,23.5);

call creardetalle('d002','f002','p02',7,20.4);
PROCEDIMIENTO ALMACENADO ELIMINAR CON PARAMETROS:

Procedimiento almacenado eliminarcliente:

delimiter $$

create procedure eliminarcliente(in pa_idcliente char(4))

begin

delete from cliente where idcliente = pa_idcliente;

end$$

/*eliminar datos en la tabla cliente*/

call eliminarcliente('0001');

Procedimiento almacenado eliminarcategoria:

delimiter $$

create procedure eliminarcategoria(in pa_idcategoria char(4))

begin

delete from categoria where idcategoria = pa_idcategoria;

end$$

/*eliminar datos en la tabla cliente*/

call eliminarcategoria('c001');

Procedimiento almacenado eliminarpago:

delimiter $$

create procedure eliminarpago(in pa_idpago char(4))

begin

delete from pago where idpago = pa_idpago;

end$$

/*eliminar datos en la tabla cliente*/

call eliminarpago('p001');
Procedimiento almacenado eliminarproducto:

delimiter $$

create procedure eliminarproducto(in pa_idproducto char(4))

begin

delete from producto where idproducto = pa_idproducto;

end$$

/*eliminar datos en la tabla cliente*/

call eliminarproducto('p001');

Procedimiento almacenado eliminarfactura:

delimiter $$

create procedure eliminarfactura(in pa_idfactura char(4))

begin

delete from factura where idfactura = pa_idfactura;

end$$

/*eliminar datos en la tabla cliente*/

call eliminarfactura('f001');

Procedimiento almacenado eliminardetalle:

delimiter $$

create procedure eliminardetalle(in pa_iddetalle char(4))

begin

delete from detalle where iddetalle = pa_iddetalle;

end$$

/*eliminar datos en la tabla cliente*/

call eliminardetalle('d001');
Bibliografía

1 Castán F. Procedimiento almacenado sin parametros de salida en MySQL 5.

. [Online].; 2010 [cited 2017 06 20. Available from:

https://fcocastan.wordpress.com/2010/12/27/procedimiento-almacenado-sin-

parametros-de-salida-en-mysql-5/.

2 Oracle Ya. Procedimientos Almacenados. [Online].; 2013 [cited 2017 06 20.

. Available from:

http://www.tutorialesprogramacionya.com/oracleya/temarios/descripcion.php?inicio=

75&cod=250&punto=92.

3 Hosting guebs. Capítulo 19. Procedimientos almacenados y funciones. [Online].;

. 2015 [cited 2017 06 20. Available from: https://manuales.guebs.com/mysql-

5.0/stored-procedures.html#stored-procedure-logging.

4 Ramakrishnan R, Gehrke J. Procedimientos almacenados en una base de datos. tercera

. ed. Madrid: McGraw-Hi S.A; 2007.

5 San Martín González E. Teoria de procedimientos almacenados. Primera ed. Madrid:

. IC Editoria; 2014.

6 Valderrey Sanz P. Procedimiento almacenado ejecutar insert, update, delete y un

. select. Primera ed. Madrid: RA-MA Editorial; 2014.

Anda mungkin juga menyukai