Mi aprendizaje sobre Tipos de consultas caso de estudio “Biblioteca”
/*Insertar*/
-- Punto 1
select * from tblReserva --consulta
DELETE FROM tblusuario WHERE Cedula = 8888 -- Eliminar
Insert into tblusuario values(8888,'Carlos','4042565','Cr 66a 101a 05',1,'Vigente') -- Insertar datos Usuario
Alter table tblMaterial -- Modifica restircción
add constraint CK__tblMaterial__año__31EC6D26 check (año between 1930 and 2015)
go
Insert into tblMaterial values('El buen vendedor', 30000, 2013, 1, 1) -- Inserta Libro
Insert into tblReserva values('20200924 10:34:09 AM',8888, 10) -- Inserta Reserva
Insert into tblPertenece values(8888, 1) -- Inserta la dependecia del estudiante
select * from tblReserva
--Punto 2
Select * from tblPrestamo -- Consulta
create table tblDatos -- Creacion de la tabla
(
Cedula int,
Nombre varchar(30)not null,
telefono int not null,
Direccion varchar(30) not null,
)
Insert into tblDatos (Cedula, Nombre, telefono, Direccion) Select Cedula, Nombre, Telefono, Direccion from tblusuario where Cedula = any (select tblusuario.Cedula from tblusuario inner join tblPrestamo on tblusuario.Cedula = tblPrestamo.Cedula group by tblusuario.Cedula) --Inserta datos
select * from tblDatos -- Comprobar datos
DROP TABLE tblDatos -- Eliminar tabla
/*Consultas*/
-- Punto 3
Select * from tblPrestamo
Select Cod_Prestamo from tblPrestamo where Cedula = Any (select Cedula from tblPertenece where Cod_Dependencia in (2 , 3)) -- Prestaron
create table #tblPrestados
(
Cod_Prestamo int,
Cod_Material int,
)
Insert into #tblPrestados(Cod_Prestamo, Cod_Material)Select Cod_Prestamo, Cod_Material from tblPrestamo where Cedula = Any (select Cedula from tblPertenece where Cod_Dependencia in (2 , 3)) -- Guardo los prestados para luego realizar la busquedad
Select* from #tblPrestados -- Verifico datos guardados
Select Cod_Prestamo ,Cod_Material from #tblPrestados where Cod_Prestamo not in (select Num_Prestamo from tblDevolucion) -- No devueltos usando la tabla temporal
Select * from tblMaterial where Cod_material = any (Select Cod_Material from #tblPrestados where Cod_Prestamo not in (select Num_Prestamo from tblDevolucion)) -- Muestra los datos de los que no han devuelto
--Punto 4
Select * from tblMaterial
Select * from tblPrestamo -- Consultas
select avg(cantidad) As Promedio from tblMaterial -- Promedio
Select Cod_Material, Count(Cod_Material) as Prestados from tblPrestamo group by Cod_Material having Count(Cod_Material) > (select avg(cantidad) As Promedio from tblMaterial) -- Codigo del material y veces prestado
create table #tblPrestados2 -- Tabla temporal para guardar y luego comparar
(
Cod_Material int,
Prestados int
)
Insert into #tblPrestados2(Cod_Material, Prestados)Select Cod_Material, Count(Cod_Material) as Prestados from tblPrestamo group by Cod_Material having Count(Cod_Material) > (select avg(cantidad) As Promedio from tblMaterial) -- Insertar datos en la tabla
Select * From #tblPrestados2 -- Revisar tabla
Select tblMaterial.Nombre_material, #tblPrestados2.Prestados from tblMaterial inner join #tblPrestados2 on tblMaterial.Cod_material = #tblPrestados2.Cod_Material -- Busqueda solicitada
--Punto 5
select * from tblusuario
select * from tbldependencia
select * from tblPertenece
--- No hay ningun usuario que pertenezca a mas de una dependencia.
/*Actualizar*/
--Punto 6
select * from tblTipo_Material -- No hay material de juegos.
Select Cod_material from tblMaterial where CodTipo_Material = 4 --Audiovisual no se ha registrado aun ningun material
--Punto 7
select * from tblMaterial -- Mirar la tabla
Select Cod_Material, Count(Cod_Material) As Veces_Prestado from tblPrestamo group by Cod_Material having Count(Cod_Material)>5 -- Saber el numero de veces que han sido prestados
Select Cod_Material from tblMaterial where año < 2000 and Cod_material in (Select Cod_Material from tblPrestamo group by Cod_Material having Count(Cod_Material) >5) -- Saber los materiales de menos del año 2000
update tblMaterial set valor = Valor - Valor * 0.05 where Cod_material in (Select Cod_Material from tblMaterial where año < 2000 and Cod_material in (Select Cod_Material from tblPrestamo group by Cod_Material having Count(Cod_Material) >5)) --Actualizacion de precio
--Punto 8
Select * from tblusuario -- Consultar
Select tblusuario.Cedula, Nombre from tblusuario inner join tblPertenece on tblPertenece.Cedula = tblusuario.Cedula where Nombre in ('Carlos' , 'Camilo' , 'Camila') and Estado_usuario <> ('Vigente') and Cod_Dependencia = 1 -- Camilo y camila no son de la dependecia judicial y carlos que si lo es, tiene su estado vigente
/*Borrar*/
--Punto 9
Select * from tblReserva -- Consultar
Select tblusuario.Cedula from tblusuario where Nombre in ('Carlos' , 'Camilo' , 'Camila') -- Encuentro la cc de carlos, camila y camilo
Delete from tblReserva where Cedula = ANY (Select tblusuario.Cedula from tblusuario where Nombre in ('Carlos' , 'Camilo' , 'Camila')) -- Elimino las reservas que hayan hecho
--Punto 10
Select * from tblTipo_Material -- Obtengo el codigo del material
Select tblMaterial.Cod_material from tblMaterial where CodTipo_Material = 1 --Obtengo el codigo de material del tipo libro o 1
Delete from tblPrestamo where Cod_Material = any (Select tblMaterial.Cod_material from tblMaterial where CodTipo_Material = 1) -- Elimino esos prestamos
select * from tblPrestamo -- Compruebo
Comentarios
Publicar un comentario