-- Crear la tabla autores
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
('Gabriel García Márquez', 'Colombiano'),
('Isabel Allende', 'Chilena');
-- Insertar datos en usuarios
INSERT INTO usuarios (nombre, correo, fecha_registro) VALUES
('Diego Martínez', 'diego.martinez@gmail.com', '2024-05-09'),
('Laura Gómez', 'laura.gomez@yahoo.com', '2026-05-15');
-- Insertar datos en libros
INSERT INTO libros (titulo, id_autor, fecha_publicacion) VALUES
('Cien Años de Soledad', 1, '1967-05-30'),
('La Casa de los Espíritus', 2, '1982-04-10');
-- Insertar datos en préstamos
INSERT INTO prestamos (id_usuario, id_libro, fecha_prestamo, fecha_devolucion) VALUES
(1, 1, '2026-05-01', '2026-05-04'),
(2, 2, '2026-05-04', '2026-05-14');
SELECT * FROM autores;
SELECT * FROM autores WHERE nacionalidad = 'Colombiano';
SELECT * FROM autores WHERE nacionalidad = 'Colombiano';
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 COUNT(*) AS total_autores FROM autores;
SELECT libros.titulo
FROM libros
LEFT JOIN prestamos ON libros.id_libro = prestamos.id_libro
WHERE prestamos.id_libro IS NULL;
SELECT libros.titulo
FROM libros
LEFT JOIN prestamos ON libros.id_libro = prestamos.id_libro
WHERE prestamos.id_libro IS NULL;
SELECT titulo, fecha_publicacion
FROM libros
WHERE fecha_publicacion < '2000-01-01';
To embed this project on your website, copy the following code and paste it into your website's HTML: