CREATE TABLE autores (
id_autor INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
nacionalidad VARCHAR(50)
);
-- Crear la tabla libros con una clave foránea que hace referencia a autores
CREATE TABLE libros (
id_libro INT AUTO_INCREMENT PRIMARY KEY,
titulo VARCHAR(200),
id_autor INT,
fecha_publicacion DATE,
FOREIGN KEY (id_autor) REFERENCES autores(id_autor)
);
-- Crear la tabla usuarios
CREATE TABLE usuarios (
id_usuario INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100),
correo VARCHAR(100) UNIQUE,
fecha_registro DATE
);
-- Crear la tabla préstamos con claves foráneas que referencian a usuarios y libros
CREATE TABLE prestamos (
id_prestamo INT AUTO_INCREMENT PRIMARY KEY,
id_usuario INT,
id_libro INT,
fecha_prestamo DATE,
fecha_devolucion DATE,
FOREIGN KEY (id_usuario) REFERENCES usuarios(id_usuario),
FOREIGN KEY (id_libro) REFERENCES libros(id_libro)
);
-- Insertar datos en autores
INSERT INTO autores (nombre, nacionalidad) VALUES
('CARLOS MENDES', 'MEXICANO'),
('LAURA FERNANDEZ', 'ESPAÑOLA'),
('JOHN CARTER', 'ESTADOUNIDENSE'),
('MARTINA ROSSI', 'ITALIANA'),
('CLAIRE DUBOIS', 'FRANCESA');
-- Insertar datos en usuarios
INSERT INTO usuarios (nombre, correo, fecha_registro) VALUES
('LUNA_AZUL23', 'LUNA.AZUL23@MAIL.COM', '2018-05-17'),
('CODERX99', 'CODERX99@TECHMAIL.COM', '2021-08-20'),
('VIAJERO_SIN_RUTA', 'VIAJERO.RUTA@CORREO.COM', '2023-05-03'),
('DARKPHOENIX77', 'DARKPHOENIX77@MAILHUB.COM', '2019-02-20'),
('PIXEL_ART_01', 'PIXEL.ART01@WEBMAIL.COM', '2019-07-17');
-- Insertar datos en libros
INSERT INTO libros (titulo, id_autor, fecha_publicacion) VALUES
('LA SOMBRA DEL VIENTO AZUL', 1, '2021-05-20'),
('ECOS DEL SILENCIO', 2, '2018-05-08'),
('EL ÚLTIMO AMANECER', 3, '2017-05-24'),
('CENIZAS DEL PASADO', 4, '2022-05-12'),
('EL JARDÍN DE LOS SECRETOS', 5, '2016-05-19');
-- Insertar datos en préstamos
INSERT INTO prestamos (id_usuario, id_libro, fecha_prestamo, fecha_devolucion) VALUES
(2, 2, '2016-05-19', '2016-11-11'),
(2, 2, '2017-03-22', '2017-04-12'),
(3, 3, '2019-05-02', '2019-05-11'),
(4, 4, '2017-05-02', '2017-05-11'),
(5, 5, '2024-05-02', '2024-06-05');
SELECT * FROM autores;
SELECT * FROM autores WHERE nacionalidad = 'FRANCESA';
SELECT COUNT(*) AS total_autores FROM autores;
SELECT titulo, fecha_publicacion
FROM libros
WHERE fecha_publicacion > '2017-06-01';
SELECT libros.titulo, autores.nombre AS autor
FROM libros
JOIN autores ON libros.id_autor = autores.id_autor;
SELECT usuarios.nombre AS usuario, COUNT(prestamos.id_prestamo) AS total_prestamos
FROM prestamos
JOIN usuarios ON prestamos.id_usuario = usuarios.id_usuario
GROUP BY usuarios.nombre;
SELECT libros.titulo
FROM libros
LEFT JOIN prestamos ON libros.id_libro = prestamos.id_libro
WHERE prestamos.id_libro IS NULL;
To embed this project on your website, copy the following code and paste it into your website's HTML: