Informe Sentencias Taller Biblioteca

Insertar
1.      Insertar una reserva para el usuario Carlos con cedula 8888 de la dependencia judicial para el material libro el Buen vendedor con un valor de 30000, año 2013 y cantidad 1.
Si el usuario y el material no están en la base de datos también los debe insertar y asumir los datos
 Faltantes.
Nota: Se viola el constraint ([año]>=(1930) AND [año]<=(2012)) por tanto se adapta el sql para que el año del material sea de 2012

if not exists(select Cod_material from tblMaterial where Nombre_material = 'El buen vendedor')
Begin
insert into tblMaterial values('El buen vendedor',30000,2012,1,1)
insert into tblEjemplar values (@@IDENTITY,'Disponible')
End

if not exists(select Cedula from tblusuario where Cedula = 8888)
Begin
insert into tblusuario values(8888,'Carlos','2342','Avenida siempre viva',1, 'Vigente')
insert into tblPertenece values(8888,1)
End

insert into tblPrestamo values ('2017-03-08','2017-04-08',(select top(1) [Cod_material] from tblMaterial where Nombre_material = 'El buen vendedor'),(select top(1) Num_Ejemplar from tblEjemplar where Cod_Material = (select top(1) [Cod_material] from tblMaterial where Nombre_material = 'El buen vendedor')) ,8888)

2. Insertar en una tbla llamada TBL_datos los registros de de los usuarios.
 No entiendo este punto

Consultar

1.      Mostrar los datos de los materiales que no han devuelto los usuarios de sistemas o de administración.

select M.* from tblPrestamo P inner join tblMaterial M
on P.Cod_Material = M.Cod_material
inner join tblusuario U on U.Cedula = P.Cedula
inner join tblPertenece Per on U.Cedula=Per.Cedula
where
Cod_Prestamo not in ( select Num_Prestamo from tblDevolucion)
and Cod_Dependencia in (1,2)


2.      Mostrar los datos de los materiales con año mayor que 1990 y un valor menor que los materiales con título fundamentos de B de D, introducción a la administración o Balística.
No se como hacer este.

3.      Mostrar los nombres de los materiales y su cantidad de préstamos solo si esta cantidad es mayor que el promedio de todas las cantidades de los materiales.

select M.Nombre_material, count(Cod_Prestamo) from tblPrestamo P inner join tblMaterial M
on P.Cod_Material = M.Cod_material
group by M.Nombre_material
having count(Cod_Prestamo) > (select sum(Cod_Prestamo) / count(Cod_Prestamo) from tblPrestamo)


4.      Mostrar los datos de los usuarios con estado vetado que pertenecen a todas las dependencias.
select U.Cedula, Nombre, COUNT(U.Cedula) as dependencias from tblusuario U inner join tblPertenece P on U.Cedula = P.Cedula
 where Estado_usuario = 'Vetado'
 group by U.Cedula, Nombre
 Having COUNT(U.Cedula) = (select COUNT([Cod_Dependencia]) from tbldependencia)


Actualizar
1.      Actualizar el estado de los ejemplares de los materiales tipo película o juegos para estado reservado.
Nota: Se utilizan los tipos Libro y Periodico, ya que Pelicula y Juegos no están en el script de ejemplo.
Update E set E.estado='reservado' from tblMaterial M inner join  tblEjemplar E on E.Cod_Material=M.Cod_material  where codtipo_material in (1,3)

2.      Actualizar el valor de los materiales en una disminución del 5% con año menor que 2000 y se han prestado más de 5 veces

update M set M.valor = M.valor - (M.valor * (5/100)) from tblMaterial M inner join (select Cod_material, count([Cod_Prestamo]) countprestamo from tblPrestamo group by Cod_material)on M.Cod_material = P.Cod_Material
where countprestamo > 5 and año < 2000


3.      Actualizar el estado de los usuarios Carlos Camilo y Camila a vigente si pertenecen a las dependencias Judicial

update U set U.Estado_usuario = 'Vigente' from tblusuario U inner join tblPertenece P on u.Cedula = P.Cedula where nombre in ('Carlos', 'Camilo','Camila') and Cod_Dependencia = 1

Borrar
1.      Borrar las reservas de los usuarios Carlos Camilo y Camila.
delete from tblReserva where cedula in (select cedula from tblusuario where nombre in ('Carlos', 'Camilo', 'Camila'))


2.      Borrar los préstamos de los ejemplares de los materiales libros

delete  from tblPrestamo where num_ejemplar in (select Num_Ejemplar from tblEjemplar where Cod_Material in (select Cod_material from tblMaterial where CodTipo_Material = 1))


Esta actividad se realizará en grupos máximo de tres estudiantes.
El envío se hace en un bloguer, se proponen consultas de inserción, selección, actualización y borrado y las soluciona para ser compartida en el blog.
Nombre_Apellido_Act1_tarea2_taller.doc
Para la solución se deben tener en cuenta todos los conceptos del documento DML2 sobre las operaciones de manipulación de datos.

Como se puede observar, todas las consultas tienen una sintáxis y una manera diferente de gestionar las operaciones que se le solicitan, es por tanto que muchas veces se opta por usar sistemas gestores de bases de datos,y muchos otros, requiere de mucho estudio.

Comentarios

Entradas populares