COMPARTE ESTE ARTÍCULO

En este artículo, exploraremos cómo desarrollar un sistema básico de gestión para una librería utilizando MySQL. Este tipo de sistema permitirá gestionar la información de los autores, libros, clientes y ventas. Mostraremos cómo crear la base de datos, definir las tablas necesarias, insertar datos y realizar consultas para extraer información útil. Este ejercicio es ideal para quienes están aprendiendo bases de datos relacionales y desean aplicar sus conocimientos a un escenario práctico.

Creación de la Base de Datos

Lo primero que debemos hacer es crear una base de datos llamada libreria, que contendrá todas las tablas que utilizaremos para la gestión de la información.

CREATE DATABASE libreria;
USE libreria;

Con esto, ya tenemos el espacio en donde se almacenará toda la información relacionada con la librería.

Definición de Tablas

A continuación, crearemos las tablas necesarias para almacenar los datos de autores, libros, clientes y ventas. Cada una de estas tablas estará conectada por medio de claves foráneas, lo que nos permitirá relacionar la información entre ellas.

Tabla: autores

Esta tabla contendrá la información de los autores de los libros.

CREATE TABLE autores (
    id_autor INT AUTO_INCREMENT PRIMARY KEY,
    nombre VARCHAR(100) NOT NULL,
    nacionalidad VARCHAR(50)
);
Tabla: libros

En esta tabla almacenaremos los datos de los libros. Notamos que cada libro tiene un autor asociado mediante la clave foránea id_autor.

CREATE TABLE libros (
    id_libro INT AUTO_INCREMENT PRIMARY KEY,
    titulo VARCHAR(150) NOT NULL,
    id_autor INT,
    precio DECIMAL(10, 2),
    fecha_publicacion DATE,
    FOREIGN KEY (id_autor) REFERENCES autores(id_autor)
);
Tabla: clientes

Esta tabla almacenará la información de los clientes que compran libros en nuestra librería.

CREATE TABLE clientes (
    id_cliente INT AUTO_INCREMENT PRIMARY KEY,
    nombre VARCHAR(100) NOT NULL,
    correo VARCHAR(100),
    telefono VARCHAR(20)
);
Tabla: ventas

La tabla ventas se encargará de registrar las transacciones realizadas por los clientes. Aquí, se relacionan los clientes con los libros que han comprado.

CREATE TABLE ventas (
    id_venta INT AUTO_INCREMENT PRIMARY KEY,
    id_cliente INT,
    id_libro INT,
    fecha_venta DATE,
    cantidad INT,
    FOREIGN KEY (id_cliente) REFERENCES clientes(id_cliente),
    FOREIGN KEY (id_libro) REFERENCES libros(id_libro)
);

Inserción de Datos

Una vez creadas las tablas, procedemos a poblarlas con algunos datos de ejemplo.

Inserción de Autores
INSERT INTO autores (nombre, nacionalidad)
VALUES 
('Gabriel García Márquez', 'Colombiana'),
('Isabel Allende', 'Chilena'),
('Mario Vargas Llosa', 'Peruana');
Inserción de Libros
INSERT INTO libros (titulo, id_autor, precio, fecha_publicacion)
VALUES 
('Cien años de soledad', 1, 15.50, '1967-05-30'),
('La casa de los espíritus', 2, 12.99, '1982-01-01'),
('La ciudad y los perros', 3, 10.00, '1963-10-01');
Inserción de Clientes
INSERT INTO clientes (nombre, correo, telefono)
VALUES 
('Juan Pérez', 'juan.perez@gmail.com', '555-1234'),
('María Gómez', 'maria.gomez@yahoo.com', '555-5678'),
('Carlos Ruiz', 'carlos.ruiz@hotmail.com', '555-8765');
Inserción de Ventas
INSERT INTO ventas (id_cliente, id_libro, fecha_venta, cantidad)
VALUES 
(1, 1, '2024-10-01', 1),
(2, 2, '2024-10-02', 2),
(3, 3, '2024-10-03', 1);

Con estos datos insertados, ya tenemos una base sólida para realizar consultas interesantes que nos permitirán gestionar eficientemente la información de la librería.

Consultas Básicas

El siguiente paso es extraer información valiosa de la base de datos. A continuación, presento algunas consultas útiles:

Consulta de libros con sus autores
SELECT libros.titulo, autores.nombre AS autor, libros.precio
FROM libros
JOIN autores ON libros.id_autor = autores.id_autor;

Esta consulta devuelve los títulos de los libros, el nombre del autor correspondiente y su precio.

Consulta de todas las ventas realizadas
SELECT ventas.id_venta, clientes.nombre AS cliente, libros.titulo AS libro, ventas.cantidad, ventas.fecha_venta
FROM ventas
JOIN clientes ON ventas.id_cliente = clientes.id_cliente
JOIN libros ON ventas.id_libro = libros.id_libro;

Aquí se puede ver un registro de todas las ventas, incluyendo el nombre del cliente, el título del libro y la cantidad comprada.

Consulta de la cantidad total de libros vendidos por cliente
SELECT clientes.nombre, SUM(ventas.cantidad) AS total_libros
FROM ventas
JOIN clientes ON ventas.id_cliente = clientes.id_cliente
GROUP BY clientes.nombre;

Esta consulta muestra cuántos libros ha comprado cada cliente.

Consulta del autor más vendido
SELECT autores.nombre, SUM(ventas.cantidad) AS total_vendidos
FROM ventas
JOIN libros ON ventas.id_libro = libros.id_libro
JOIN autores ON libros.id_autor = autores.id_autor
GROUP BY autores.nombre
ORDER BY total_vendidos DESC
LIMIT 1;

Finalmente, esta consulta identifica el autor con mayor cantidad de libros vendidos.

Conclusión


¿QUÉ TE HA PARECIDO EL ARTÍCULO? Danos tu opinión al final de la página.
Deja tu comentario y ayúdanos a crecer.


¡SÍGUENOS EN TUS REDES FAVORITAS!
AYUDANOS A CRECER Y QUE LLEGUEMOS A TODAS LAS PERSONAS QUE NOS NECESITANA. SÍGUENOS EN TUS REDES.
Entra AQUÍ y elíge donde seguirnos. 

 

 


NUESTRAS ÚLTIMAS PUBLICACIONES

AYUDANOS A CRECER Y A LLEGAR A TODAS LAS PERSONAS QUE NOS NECESITAN.

Este ejercicio práctico proporciona una visión clara de cómo se puede implementar un sistema de gestión para una librería utilizando MySQL. Las tablas relacionales permiten organizar y manejar de manera eficiente los datos de autores, libros, clientes y ventas, mientras que las consultas SQL ofrecen un poderoso mecanismo para extraer y analizar la información.

Este tipo de sistema se puede ampliar con características adicionales, como el seguimiento de inventario de libros, reportes de ingresos, o incluso una interfaz gráfica para usuarios finales.

Contenido restringido

Acceso de usuarios existentes
   
Registro de un nuevo usuario
*Campo necesario

Categories:

Tags:

Comments are closed

Estado de acceso
ESTADO DE ACCESO
TRADUCTORES
COMPARTENOS
error: CONTENIDO PROTEGIDO