Manipulación de datos BIBLIOTECA
IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = 'Bdbiblioteca')
BEGIN
CREATE DATABASE Bdbiblioteca
END
Drop table Usuario
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Usuario]') AND type in (N'U'))
BEGIN
create table Usuario(
Cedula int primary key not null,
Nombre_U varchar(40) not null,
Apellidos varchar(40) not null,
Telefono bigint not null,
Direccion text,
)
END
GO
truncate table Usuario
go
Insert into Usuario values ('43467895','Rangel','Ramirez Restrepo','314507891','Calle 14#2050')
Insert into Usuario values ('1023890578','Sebastian','Garcia Ospina','3135678902','Calle 12#5678')
Insert into Usuario values ('41567987','Tony','Montana Cardona','3156782341','Calle 51478')
Insert into Usuario values ('42492518','Jorge Andres','Vargas Lopez','3189023456','Calle 9#3456')
select * from Usuario
Drop table libro
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Libro]') AND type in (N'U'))
BEGIN
create table Libro(
Id_libro int primary key not null,
Titulo text not null,
Genero Varchar(40) not null,
Editorial Varchar(40) not null,
Autor Varchar(40) not null,
Año Int not null,
)
END
GO
truncate table Libro
go
Insert into Libro values ('043','Eclipse','Romance','NORMA','Sebastian Marquez','2006')
Insert into Libro values ('002','Trapeando el mar','Drama','SEBASFLV','Jorge Davinci','2010')
Insert into Libro values ('215','Cuentos magicos','Ciencia Ficcion','EYE','Jose Picasso','2018')
Insert into Libro values ('034','La antartida','Terror-Suspenso','PLUST','Marcela Montana','1995')
select * from Libro
Drop Table Autor
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Autor]') AND type in (N'U'))
BEGIN
create table Autor(
Nombre Varchar(40)not null,
Nacionalidad varchar(40) not null,
Libros_en_inventario int
)
END
GO
Insert into Autor values('Sebastian','Argentina','4')
Insert into Autor values('Jorge','Peruano','3')
Insert into Autor values('Jose','India','1')
Insert into Autor values('Marcela','Arabe','2')
select * from Autor
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Estado_de_libro]') AND type in (N'U'))
BEGIN
create table Estado_de_libro(
Titulo Varchar (40) not null,
En_biblioteca Varchar (40) not null,
Prestado Varchar (40) not null,
En_Mantenimiento Varchar (40) not null,
CONSTRAINT fk_Libro FOREIGN KEY (Titulo) REFERENCES Libro (Titulo)
)
END
GO
truncate table Estado_de_libro
Insert into Estado_de_libro values('Eclipse','No','Si','No')
Insert into Estado_de_libro values('Trapeando el mar','No','No','Si')
Insert into Estado_de_libro values('Cuentos magicos','Si','No','No')
Insert into Estado_de_libro values('La antartida','No','Si','No')
select * from Estado_de_libro
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Prestamo]') AND type in (N'U'))
BEGIN
create table Prestamo(
Titulo Varchar (40) not null,
Nombre_U Varchar (40) not null,
Fecha_Prestamo Varchar (40) not null,
Fecha_Devolucion Varchar (40) not null,
CONSTRAINT fk_Prestamo FOREIGN KEY (Titulo) REFERENCES Libro (Titulo),
CONSTRAINT fk_Usuario FOREIGN KEY (Nombre_U) REFERENCES Usuario (Nombre_U)
)
END
GO
Insert into Prestamo values('Eclipse','Rangel','23/09/2014','25/10/2014')
Insert into Prestamo values('Trapeando el mar','Sebastian','12/03/2014','27/04/2014')
Insert into Prestamo values('Cuentos magicos','Tony','30/10/2014','21/11/2014')
Insert into Prestamo values('La antartida','Jorge Andres','26/05/2017','22/06/2014')
select * from Prestamo
/*PARA EVITAR EL DUPLICADO EN LA ULTIMA TABLA SE DEBE EJECUTAR EL WHIT C AS UNICAMENTE PARA QUE SE ARREGLE, SI SE EJECUTA TODO ÉL PROGRAMA MARCA ERROR
O EJECUTAR EL PROGRAMA DE APARTIR DE ESTE COMENTARIO HACIA ARRIBA, ESTO DE ABAJO ES SOLO UNA POSIBLE SOLUCION SI LA VA A USAR SOLO DESCOMENTELA, ATENTAMENTE SEBASTIAN GARCIA
WITH C AS
(
SELECT Titulo,Nombre_U,Fecha_Prestamo,Fecha_Devolucion,
ROW_NUMBER() OVER (PARTITION BY
Titulo,Nombre_U,Fecha_Prestamo,Fecha_Devolucion
ORDER BY Titulo) AS DUPLICADO
FROM Prestamo
)
DELETE FROM C
WHERE DUPLICADO>1
select * from Prestamo
Comentarios
Publicar un comentario