Tarea: Administración base de datos “Biblioteca”

 Jhon Michael Diaz Arango


link video: https://youtu.be/8_68U6xL2zk


/* PUNTO 1 */

Create trigger punto1 on tblPrestamo for Insert

as

if (select Num_Ejemplar from tblPrestamo) = (select Num_Ejemplar from tblEjemplar)

begin update tblEjemplar set estado = 'Reservado'

end

go


/* PUNTO 2 */

Create trigger punto2 on tblPrestamo for Delete

as

if (select Num_Ejemplar from tblPrestamo) not in (select Num_Ejemplar from tblEjemplar)

begin update tblEjemplar set estado = 'Disponible'

end

go


/* PUNTO 3 */

Create trigger punto3 on tblPrestamo for Insert

as

if (select Cod_material from tblMaterial) = (select Cod_Material from tblPrestamo)

begin update tblMaterial set cantidad = cantidad-1

end

go


/* PUNTO 4 */

Create trigger punto4 on tblPrestamo for Delete

as

if (select Cod_material from tblMaterial) = (select Cod_Material from tblPrestamo)

begin update tblMaterial set cantidad = cantidad+1

end

go


/* PUNTO 5 */

Create trigger punto5 on tblDevolucion for Insert

as

if (select Num_Prestamo from tblDevolucion) = (select Cod_Prestamo from tblPrestamo)

begin update tblEjemplar set estado = 'Disponible'

end

go


/* PUNTO 6 */

Create trigger punto6 

on tblMaterial 

for Update

as

if UPDATE(Valor)

begin 

print 'no se puede actualizar'

rollback transaction

end

go


/* PUNTO 7 */

create trigger punto7

on tblMaterial

for update

as

if (update(valor))

begin

select d.Valor,

(d.Valor) as 'valor anterior',

(i.Valor) as 'valor actualizado'

from deleted as d

join inserted as i

on d.Cod_material=i.Cod_material

end


/* PUNTO 8 */

Create trigger punto8

on tblMaterial 

for Update

as

if (update(valor) and (select Cod_Material from tblMaterial)in (select Cod_Material from tblEjemplar where estado='Prestado'))

begin

print 'no se puede actualizar'

rollback transaction

end


/* PUNTO 9 */

Create trigger punto9 on tblPrestamo for Insert

as

if (select Cedula from tblusuario) = (select Cedula from tblPrestamo)

begin update tblusuario set Estado_usuario = 'Vigente'

end

go


/* PUNTO 10 */

create view valormaterial


as


select tblMaterial.*


from tblMaterial


where Valor<500000


/* PUNTO 11 */

create view valormaterialmmar

as

select tblMaterial.*

from tblMaterial inner join tblTipo_Material

on tblMaterial.CodTipo_Material = tblTipo_Material.CodTipo_Material

where tblMaterial.Valor> (select CodTipo_Material from tblMaterial where CodTipo_Material = 2 or CodTipo_Material = 4)


/* PUNTO 12 */

Create procedure mostrardatosvalormayordadoporusuario

@val1 int

as

select tblMaterial.* from tblMaterial

where tblMaterial.Valor > @val1

exec valormaterialmmar 1000


/* PUNTO 13 */

Create procedure insertarmaterial

@Nombre_material varchar,

@Valor int,

@año int,

@CodTipo_Material int,

@cantidad int

as

begin

Insert into tblMaterial values(@Nombre_material,@Valor,@año,@CodTipo_Material,@cantidad)

end

exec valormaterialmmar 'Bases de datos',90000,2001,1,5


/* PUNTO 14 */

Create procedure insertarmaterialpunto14

@Nombre_material varchar,

@Valor int,

@año int,

@CodTipo_Material int,

@cantidad int

as

begin

update tblMaterial set Nombre_material=@Nombre_material,Valor=@Valor,año=@año,CodTipo_Material=@CodTipo_Material,cantidad=@cantidad

end

exec insertarmaterial 'Bases de datos III',90000,2001,1,5


/* PUNTO 15 */

Create procedure borrarprestamo

@val1 int

as

begin

delete from tblPrestamo where Cod_Prestamo = @val1

end

exec borrarprestamo 1


/* PUNTO 16 */

create function materialusuario

(@nombre varchar)

returns table

as

return(select *

from tblMaterial

where Nombre_material = '%@nombre%')


/* PUNTO 17 */

create function contardiasretraso

(@Codi_Prestamo int)

returns table

as

return(select *

from tblPrestamo

where Cod_Prestamo = @Codi_Prestamo)


select Cod_Prestamo,datediff(DAY, GETDATE(),Fecha_Devolucion) as 'diasretraso' from contardiasretraso(3)


/* PUNTO 18 */

create function maximovalormateriales

(@dato int)

returns int

as

begin

return (select MAX(tblMaterial.Valor) as valor from tblMaterial )

end

go


/* punto 19 */

Usuario: usuario2

contraseña: 12345678


/* punto 20 */ 

Video: https://youtu.be/8_68U6xL2zk


reflexion:

El desarrollo de la actividad fue agradable, no muy complejo gracias al material de apoyo, tambien fue de ayuda consultar en foros de internet estos tambien brindan informacion que puede ser de ayuda a la hora de resolver los ejercicios, respecto a la actividad y mi aprendizaje, siento que aprendi mas maneras de administrar bases de datos y de dar permisos a usuarios o crearlos en sql.

Comentarios