You are on page 1of 5

Ejercicios resueltos

1) Eliminamos el procedimiento almacenado "pa_promedio", si existe


Drop procedure pa_promedio

2) Creamos un procedimiento almacenado al cual le enviamos 2 nmeros decimales y


retorna el promedio:
create procedure promedio
@n1 decimal(4,2), --parametro de entrada
@n2 decimal(4,2), --parametro de entrada
@resultado decimal(4,2) output --parametro de salida
as
select @resultado=(@n1+@n2)/2;--formula para obtener el promedio
--EJECUCION
declare @variable decimal(4,2)--declaracion de variable de salida
execute promedio 5,6, @variable output --ejecucion
select @variable; --mostrar el resultado

CREAR LA TABLA LIBROS DE LA BASE DE DATOS LIBRERA


codigo int (PK)
titulo varchar(40)
autor varchar(30)
editorial varchar(20)
precio decimal(5,2)

3) Ingresamos lo siguientes datos mediante procedimiento almacenado


insert into libros values ('Uno','Richard Bach','Planeta',15);
insert into libros values ('Ilusiones','Richard Bach','Planeta',12);
insert into libros values ('El aleph','Borges','Emece',25);
insert into libros values ('Aprenda PHP','Mario Molina','Nuevo siglo',50);
insert into libros values ('Matematica estas ahi','Paenza','Nuevo siglo',18);
insert into libros values ('Puente al infinito','Richard Bach','Sudamericana',14);
insert into libros values ('Antologa','J. L. Borges','Paidos',24);

insert into libros values ('Java en 10 minutos','Mario Molina','Siglo XXI',45);


insert into libros values ('Antologa','Borges','Planeta',34);
Create procedure insertar_libro
@tit varchar(15), @aut varchar(15), @edi varchar(20), @pre decimal(5,2)
as
Insert into LIBRO
(TITULO, AUTOR, EDITORIAL, PRECIO)
values
(@tit, @aut, @edi, @pre)
--EJECUCION
Execute insertar_libro 'Uno','Richard Bach','Planeta',15;
Execute insertar_libro 'Ilusiones','Richard Bach','Planeta',12;
Execute insertar_libro'El aleph','Borges','Emece',25;
Execute insertar_libro 'Aprenda PHP','Mario Molina','Nuevo siglo',50;
Execute insertar_libro 'Matematica estas ahi','Paenza','Nuevo siglo',18;
Execute insertar_libro 'Puente al infinito','Richard
Bach','Sudamericana',14;
Execute insertar_libro 'Antologa','J. L. Borges','Paidos',2);
Execute insertar_libro 'Java en 10 minutos','Mario Molina','Siglo
XXI',45;
Execute insertar_libro 'Antologa','Borges','Planeta',34;

4) Creamos un procedimiento almacenado que muestre los ttulos, editorial y precio de los
libros de un determinado autor (enviado como parmetro de entrada) y nos retorne la
suma y el promedio de los precios de todos los libros del autor enviado:
create procedure pa_autor_sumaypromedio3
@autor varchar(30),
@suma decimal(6,2) output,
@promedio decimal(6,2) output
as
select titulo,editorial,precio
from LIBRO
where autor=@autor
select @suma=sum(precio)
from LIBRO
where autor=@autor
select @promedio=avg(precio)
from LIBRO
where autor=@autor;
declare @s decimal(6,2), @p decimal(6,2)
execute pa_autor_sumaypromedio3 'Richard Bach', @s output, @p output
select @s as total_emple, @p as promedio_emple;

5) Crear la base de datos empleado e insertar datos mediante procedimientos


almacenados
DNI char(8) (PK)

nombre varchar(20)
apellido varchar(20)
sueldo decimal(6,2)
cantidadhijos tinyint
seccion varchar(20)
insert into empleados values('22222222','Juan','Perez',300,2,'Contaduria');
insert into empleados values('22333333','Luis','Lopez',300,0,'Contaduria');
insert into empleados values ('22444444','Marta','Perez',500,1,'Sistemas');
insert into empleados values('22555555','Susana','Garcia',400,2,'Secretaria');
insert into empleados values('22666666','Jose Maria','Morales',400,3,'Secretaria');
6) Elimine el procedimiento llamado "pa_empleados_sueldo" si existe
Drop procedure pa_empleados_sueldo

7) Cree un procedimiento almacenado llamado "pa_empleados_hijos" que seleccione los


nombres, apellidos y cantidad de hijos de los empleados con hijos.
create procedure pa_empleados_hijos
as
select nombre,apellido,cantidadhijos
from empleado
where cantidadhijos>0;
exec pa_empleados_hijos;

8) Cree un procedimiento almacenado llamado "pa_empleados_sueldo" que seleccione los


nombres, apellidos y sueldos de los empleados que tengan un sueldo superior o igual al
enviado como parmetro.

create procedure pa_empleados_sueldo


@sueldo decimal(6,2)
as
select nombre,apellido,sueldo
from EMPLEADO
where sueldo>=@sueldo;
exec pa_empleados_sueldo 400;

9) Ejecute el procedimiento creado anteriormente con distintos valores:

exec pa_empleados_sueldo 400;


exec pa_empleados_sueldo 500;
10) Cree un procedimiento llamado "pa_sueldototal" que reciba el DNI de un empleado y
muestre su nombre, apellido y el sueldo total (resultado de la suma del sueldo y salario
por hijo, que es de $200 si el sueldo es menor a $500 y $100, si el sueldo es mayor o igual
a $500).

create procedure pa_sueltototal


@dni CHAR(8),
@sueldo_total int output
AS
select NOMBRE,APELLIDO from EMPLEADO where DNI=@dni
if(select SUELDO from EMPLEADO where DNI =@dni) < 500
SELECT @sueldo_total = (SUELDO + (CANTIDADHIJOS *200))
FROM EMPLEADO where DNI=@dni
else
SELECT @sueldo_total = (SUELDO + (CANTIDADHIJOS *100))
FROM EMPLEADO where DNI=@dni

declare @sueldo_to int


execute pa_sueltototal '22222222', @sueldo_to output
select @sueldo_to SUELDO_TOTAL

11) crear un procedimiento almacenado llamado " bono_empleado" que reciba la seccion
de un empleado,y muestre el total de sueldo aadido con un bono de 500 a los que se
encuentre en la seccion de contadura
create procedure bono_empleado
@seccion varchar(20)
@tsueldo_total int output
As
Select seccion,sueldo from empleado where

12) crear el procedimiento almacenado llamado "precio_igv" que reciba el codigo del libro y
que muestre el ---precio del libro aadido con el igv (18%)

13) crear el prodemiento almacenado llamado "precio_descuento" que reciba el codigo del
libro y que muestre los libros que tengan el precio mayor a 40.00 con un descuento del
10%

14) crear el procedimiento almacenado llamado "regalo" que reciba el DNI del empleado y
que muestre el nombre, apellido, presupuesto de regalos por empleado( por cada hijo se
le brindara 100 soles) y ademas el presupuesto total necesario para cubrir todos los
regalos

You might also like