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

Entradas populares de este blog

Tarea de paginación

Consignaciones y retiros en un cajero automático

Construcción de tablas de verdad de proposiciones y formalización