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
Publicar un comentario