CREATE DATABASE Biblioteca;
USE Biblioteca;
CREATE TABLE Autores (
id_autor INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR (100),
nacionalidad VARCHAR(50)
);
CREATE TABLE Libros(
id_libro INT AUTO_INCREMENT PRIMARY KEY,
titulo VARCHAR(200),
anio_publicacion INT,
genero VARCHAR(50)
);
CREATE TABLE LibrosAutores(
id_libro INT,
id_autor INT,
PRIMARY KEY (id_libro, id_autor),
FOREIGN KEY (id_libro) REFERENCES Libros(id_libro),
FOREIGN KEY (id_autor) REFERENCES Autores(id_autor)
);
CREATE TABLE Usuarios (
id_usuario INT AUTO_INCREMENT PRIMARY KEY,
nombre_completo VARCHAR (100),
nombre_usuario VARCHAR (50),
telefono VARCHAR (20),
email VARCHAR (250),
contrasena VARCHAR (100),
rol VARCHAR(100) DEFAULT 'Lector'
);
CREATE TABLE Usuarios (
id_usuario INT AUTO_INCREMENT PRIMARY KEY,
nombre_completo VARCHAR(100) NOT NULL,
nombre_usuario VARCHAR(50) NOT NULL UNIQUE,
telefono VARCHAR(20),
email VARCHAR(250) NOT NULL UNIQUE,
contrasena VARCHAR(100) NOT NULL,
rol VARCHAR(100) DEFAULT 'Lector'
);
CREATE TABLE Prestamos(
id_prestamo INT AUTO_INCREMENT PRIMARY KEY,
id_libro INT,
id_usuario INT,
fecha_prestamo DATETIME,
fecha_devolucion DATETIME,
estado VARCHAR(50) DEFAULT 'En_Prestamo' CHECK (estado IN ('En_Prestamo', 'Devuelto')),
FOREIGN KEY (id_libro) REFERENCES Libros(id_libro),
FOREIGN KEY (id_usuario) REFERENCES Usuarios(id_usuario)
);
CREATE TABLE Login(
id_acceso INT AUTO_INCREMENT PRIMARY KEY,
id_usuario INT,
fecha_ingreso DATETIME,
fecha_salida DATETIME,
FOREIGN KEY (id_usuario) REFERENCES Usuarios(id_usuario)
);
INSERT INTO Autores (nombre, nacionalidad)
VALUES
('Gabriel García Márquez', 'Colombiano'),
('J.K. Rowling', 'Británica'),
('Miguel de Cervantes', 'Español'),
('J.R.R. Tolkien', 'Británico'),
('Isabel Allende', 'Chilena'),
('George Orwell', 'Británico'),
('Jane Austen', 'Británica'),
('Mark Twain', 'Estadounidense'),
('F. Scott Fitzgerald', 'Estadounidense'),
('Mario Vargas Llosa', 'Peruano'),
('Jorge Luis Borges', 'Argentino'),
('Octavio Paz', 'Mexicano'),
('Pablo Neruda', 'Chileno'),
('Gabriela Mistral', 'Chilena'),
('Laura Esquivel', 'Mexicana'),
('Roberto Bolaño', 'Chileno'),
('Juan Rulfo', 'Mexicano'),
('Horacio Quiroga', 'Uruguayo'),
('Alejo Carpentier', 'Cubano'),
('Rubén Darío', 'Nicaraguense'),
('Carmen Lyra', 'Costarricense'),
('Carlos Luis Fallas', 'Costarricense'),
('Adolfo Bioy Casares', 'Argentino');`
INSERT INTO Libros (titulo, anio_publicacion, genero)
VALUES
('Cien Años de Soledad', 1967, 'Novela'),
('Harry Potter y la piedra filosofal', 1997, 'Fantasía'),
('Don Quijote de la Mancha', 1605, 'Novela'),
('El Hobbit', 1937, 'Fantasía'),
('La Casa de los Espíritus', 1982, 'Novela'),
('1984', 1949, 'Distopía'),
('Orgullo y Prejuicio', 1813, 'Romance'),
('Las Aventuras de Tom Sawyer', 1876, 'Aventura'),
('El Gran Gatsby', 1925, 'Novela'),
('La Ciudad y los Perros', 1962, 'Novela'),
('Ficciones', 1944, 'Cuento'),
('El Laberinto de la Soledad', 1950, 'Ensayo'),
('Veinte Poemas de Amor y una Canción Desesperada', 1924, 'Poesía'),
('Desolación', 1922, 'Poesía'),
('Como Agua para Chocolate', 1989, 'Novela'),
('Los Detectives Salvajes', 1998, 'Novela'),
('Pedro Páramo', 1955, 'Novela'),
('Cuentos de la Selva', 1918, 'Ficción'),
('El Siglo de las Luces', 1962, 'Ficción'),
('Azul...', 1888, 'Poesía'),
('Cuentos de mi tía Panchita', 1920, 'Cuento'),
('Mamita Yunai', 1941, 'Novela'),
('Seis problemas para don Isidro Parodi', 1942, 'Cuento'),
('El amor en los tiempos del cólera', 1985, 'Novela');
INSERT INTO LibrosAutores (id_libro, id_autor)
VALUES
(1, 1),
(2, 2),
(3, 3),
(4, 4),
(5, 5),
(6, 6),
(7, 7),
(8, 8),
(9, 9),
(10, 10),
(11, 11),
(12, 12),
(13, 13),
(14, 14),
(15, 15),
(16, 16),
(17, 17),
(18, 18),
(19, 19),
(20, 20),
(21, 21),
(22, 22),
(23, 11),
(23, 23),
(24, 1);
INSERT INTO Usuarios (nombre_completo, nombre_usuario, telefono, email, contrasena, rol)
VALUES
('Administrador del Sistema', 'admin_biblio', '2222-1010', 'admin@bibliovirtual.cr', SHA2('Admin2026', 256), 'Administrador'),
('María Rodríguez Vargas', 'mrodriguez', '8888-1234', 'maria.rodriguez@example.com', SHA2('Clave1234', 256), 'Lector'),
('José Calderón Mora', 'jcalderon', '8777-5678', 'jose.calderon@example.com', SHA2('Clave5678', 256), 'Lector'),
('Andrea Solano Araya', 'asolano', '8666-9012', 'andrea.solano@example.com', SHA2('Clave9012', 256), 'Lector'),
('Daniel Jiménez Cruz', 'djimenez', '8555-3456', 'daniel.jimenez@example.com', SHA2('Clave3456', 256), 'Lector');
INSERT INTO Prestamos (id_libro, id_usuario, fecha_prestamo, fecha_devolucion, estado)
VALUES
(1, 2, '2026-09-01 10:15:00', '2026-09-10 16:30:00', 'Devuelto'),
(21, 3, '2026-09-05 14:20:00', '2026-09-12 11:00:00', 'Devuelto'),
(23, 4, '2026-08-25 13:00:00', '2026-09-02 10:00:00', 'Devuelto'),
(11, 5, '2026-09-08 15:00:00', '2026-09-16 09:30:00', 'Devuelto'),
(5, 2, '2026-09-15 09:00:00', NULL, 'En_Prestamo'),
(6, 3, '2026-09-20 08:45:00', NULL, 'En_Prestamo'),
(1, 4, '2026-09-18 17:10:00', NULL, 'En_Prestamo'),
(22, 5, '2026-09-22 12:30:00', NULL, 'En_Prestamo');
INSERT INTO Login (id_usuario, fecha_ingreso, fecha_salida)
VALUES
(1, '2026-09-30 08:00:00', '2026-09-30 12:00:00'),
(2, '2026-09-15 08:55:00', '2026-09-15 09:40:00'),
(3, '2026-09-20 08:40:00', '2026-09-20 09:15:00'),
(4, '2026-09-18 17:00:00', '2026-09-18 17:45:00'),
(5, '2026-09-22 12:25:00', '2026-09-22 13:10:00'),
(2, '2026-10-01 19:00:00', NULL);