CREATE TABLE autores (
id_autor INT PRIMARY KEY AUTO_INCREMENT,
nombres VARCHAR(100) NOT NULL,
apellidos VARCHAR(100) NOT NULL,
nacionalidad VARCHAR(60)
);
CREATE TABLE categorias (
id_categoria INT PRIMARY KEY AUTO_INCREMENT,
nombre VARCHAR(80) NOT NULL UNIQUE,
descripcion VARCHAR(200)
);
CREATE TABLE lectores (
id_lector INT PRIMARY KEY AUTO_INCREMENT,
nombres VARCHAR(100) NOT NULL,
apellidos VARCHAR(100) NOT NULL,
correo VARCHAR(100) UNIQUE,
telefono VARCHAR(20)
);
CREATE TABLE libros (
id_libro INT PRIMARY KEY AUTO_INCREMENT,
titulo VARCHAR(150) NOT NULL,
isbn VARCHAR(20) UNIQUE,
anio_publicacion SMALLINT,
precio DECIMAL(10,2) NOT NULL,
ejemplares_disponibles INT DEFAULT 0,
id_autor INT,
id_categoria INT,
FOREIGN KEY (id_autor) REFERENCES autores(id_autor),
FOREIGN KEY (id_categoria) REFERENCES categorias(id_categoria)
);
CREATE TABLE prestamos (
id_prestamo INT PRIMARY KEY AUTO_INCREMENT,
fecha_prestamo DATE NOT NULL,
fecha_devolucion DATE,
estado VARCHAR(20) DEFAULT 'Activo',
id_libro INT,
id_lector INT,
FOREIGN KEY (id_libro) REFERENCES libros(id_libro),
FOREIGN KEY (id_lector) REFERENCES lectores(id_lector)
);
SHOW TABLES;-- Modificar las tablas
ALTER TABLE libros ADD COLUMN editorial VARCHAR(100);
ALTER TABLE lectores ADD COLUMN direccion VARCHAR(150);
-- Insertar autores
INSERT INTO autores (nombres, apellidos, nacionalidad) VALUES
('Gabriel', 'García Márquez', 'Colombiano'),
('Isabel', 'Allende', 'Chilena'),
('Mario', 'Vargas Llosa', 'Peruana'),
('Rubén', 'Darío', 'Nicaragüense'),
('Sergio', 'Ramírez', 'Nicaragüense');
-- Insertar categorías
INSERT INTO categorias (nombre, descripcion) VALUES
('Novela', 'Obras narrativas extensas de ficción'),
('Poesía', 'Obras escritas en verso'),
('Cuento', 'Narraciones breves de ficción'),
('Ensayo', 'Textos de reflexión y análisis'),
('Crónica', 'Relatos periodísticos y testimoniales');
-- Insertar lectores
INSERT INTO lectores
(nombres, apellidos, correo, telefono, direccion) VALUES
('Ana', 'Martínez', 'ana.martinez@uni.edu.ni', '8855-1001', 'Managua'),
('Luis', 'Pérez', 'luis.perez@uni.edu.ni', '8855-1002', 'Masaya'),
('María', 'Mendoza', 'maria.mendoza@uni.edu.ni', '8855-1003', 'León'),
('Carlos', 'Gómez', 'carlos.gomez@uni.edu.ni', '8855-1004', 'Granada'),
('Sofía', 'Ruiz', 'sofia.ruiz@uni.edu.ni', '8855-1005', 'Estelí'),
('José', 'Morales', 'jose.morales@uni.edu.ni', '8855-1006', 'Matagalpa'),
('Elena', 'Castillo', 'elena.castillo@uni.edu.ni', '8855-1007', 'Chinandega'),
('Pedro', 'López', 'pedro.lopez@uni.edu.ni', '8855-1008', 'Jinotepe');
-- Comprobar los registros
SELECT * FROM autores;
SELECT * FROM categorias;
SELECT * FROM lectores;INSERT INTO libros
(titulo, isbn, anio_publicacion, precio,
ejemplares_disponibles, id_autor, id_categoria, editorial)
VALUES
('Cien años de soledad', '9780307474728', 1967, 25.00, 5, 1, 1, 'Sudamericana'),
('La casa de los espiritus', '9788401352898', 1982, 22.00, 4, 2, 1, 'Plaza y Janes'),
('La ciudad y los perros', '9788437604947', 1963, 20.00, 3, 3, 1, 'Seix Barral'),
('Azul', '9788437601234', 1888, 15.00, 6, 4, 2, 'Editorial Universitaria'),
('El reino animal', '9788437605678', 2005, 18.00, 4, 5, 3, 'Alfaguara'),
('El amor en los tiempos del colera', '9780307389732', 1985, 24.00, 5, 1, 1, 'Oveja Negra'),
('Eva Luna', '9788401352904', 1987, 21.00, 3, 2, 1, 'Plaza y Janes'),
('La fiesta del chivo', '9788432210452', 2000, 23.00, 2, 3, 1, 'Alfaguara'),
('Prosas profanas', '9788437609876', 1896, 16.00, 5, 4, 2, 'Editorial Universitaria'),
('Margarita', '9788437612345', 1990, 14.00, 7, 4, 2, 'Editorial Universitaria'),
('Castigo divino', '9789992400011', 1988, 19.00, 4, 5, 5, 'Nueva Nicaragua'),
('Un baile de mascaras', '9789992400028', 1995, 17.00, 3, 5, 1, 'Anama');
-- Insertar 10 prestamos
INSERT INTO prestamos
(fecha_prestamo, fecha_devolucion, estado, id_libro, id_lector)
VALUES
('2026-10-01', '2026-10-10', 'Devuelto', 1, 1),
('2026-10-02', '2026-10-12', 'Devuelto', 2, 2),
('2026-10-03', NULL, 'Activo', 3, 3),
('2026-10-04', '2026-10-14', 'Devuelto', 4, 4),
('2026-10-05', NULL, 'Activo', 5, 5),
('2026-10-06', NULL, 'Activo', 6, 6),
('2026-10-07', '2026-10-15', 'Devuelto', 7, 7),
('2026-10-08', NULL, 'Activo', 8, 8),
('2026-10-09', '2026-10-18', 'Devuelto', 9, 1),
('2026-10-10', NULL, 'Activo', 10, 2);
-- Verificar los registros
SELECT * FROM libros;
SELECT * FROM prestamos;
To embed this project on your website, copy the following code and paste it into your website's HTML: