Crear una base de datos en MySQL con múltiples tablas interrelacionadas es una habilidad esencial para cualquier desarrollador que quiera trabajar con bases de datos relacionales. Este artículo explicará paso a paso cómo crear una base de datos con tres tablas que están relacionadas entre sí, permitiendo una gestión eficiente de los datos. A través de un ejemplo práctico, te mostraremos cómo definir las tablas, crear relaciones entre ellas y cómo insertar y consultar datos.
1. Definición del Ejercicio
Vamos a crear una base de datos para gestionar un sistema de tienda de videojuegos. Nuestra base de datos tendrá tres tablas:
- Clientes: donde se almacenará la información de los usuarios.
- Juegos: para almacenar los juegos que vende la tienda.
- Compras: para registrar las compras que cada cliente ha hecho.
Las tablas estarán interrelacionadas de la siguiente manera:
- Un cliente puede comprar varios juegos, pero un juego puede ser comprado por muchos clientes. Esta es una relación muchos a muchos, por lo que necesitaremos una tabla intermedia llamada Compras para gestionar esta relación.
2. Crear la Base de Datos
Primero, debes crear la base de datos. Para esto, ejecuta el siguiente comando:
CREATE DATABASE tienda_videojuegos;
USE tienda_videojuegos;
3. Crear las Tablas
3.1. Tabla Clientes
La tabla Clientes
almacenará información básica de cada cliente. Incluye un identificador único para cada cliente, su nombre, y su correo electrónico.
CREATE TABLE Clientes (
cliente_id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100),
email VARCHAR(100) UNIQUE
);
3.2. Tabla Juegos
La tabla Juegos
almacenará la información de cada juego, con un identificador único, el nombre del juego, la plataforma, y el precio.
CREATE TABLE Juegos (
juego_id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100),
plataforma VARCHAR(50),
precio DECIMAL(10, 2)
);
3.3. Tabla Compras
La tabla Compras
es la tabla intermedia que conecta a los clientes con los juegos. Esta tabla incluirá los identificadores de los clientes y los juegos, y representará cada compra realizada. Además, puedes añadir una columna de fecha de compra para mayor detalle.
CREATE TABLE Compras (
compra_id INT AUTO_INCREMENT PRIMARY KEY,
cliente_id INT,
juego_id INT,
fecha_compra DATE,
FOREIGN KEY (cliente_id) REFERENCES Clientes(cliente_id),
FOREIGN KEY (juego_id) REFERENCES Juegos(juego_id)
);
4. Inserción de Datos
Ahora que las tablas están creadas y las relaciones establecidas, insertaremos algunos datos de ejemplo para cada tabla.
4.1. Insertar Datos en Clientes
INSERT INTO Clientes (nombre, email) VALUES
('Juan Pérez', 'juan@example.com'),
('Ana López', 'ana@example.com'),
('Carlos Sánchez', 'carlos@example.com');
4.2. Insertar Datos en Juegos
INSERT INTO Juegos (nombre, plataforma, precio) VALUES
('The Legend of Zelda', 'Switch', 59.99),
('FIFA 24', 'PlayStation 5', 69.99),
('Cyberpunk 2077', 'PC', 39.99);
4.3. Insertar Datos en Compras
INSERT INTO Compras (cliente_id, juego_id, fecha_compra) VALUES
(1, 1, '2024-10-01'),
(1, 3, '2024-10-02'),
(2, 2, '2024-10-03'),
(3, 1, '2024-10-04');
5. Realización de Consultas
Ahora que los datos han sido insertados, podemos realizar algunas consultas para verificar que las relaciones entre las tablas funcionan correctamente.
5.1. Obtener las Compras de un Cliente
Para obtener todos los juegos que ha comprado un cliente específico, utilizamos una consulta con JOIN:
SELECT Clientes.nombre AS cliente, Juegos.nombre AS juego, Compras.fecha_compra
FROM Compras
JOIN Clientes ON Compras.cliente_id = Clientes.cliente_id
JOIN Juegos ON Compras.juego_id = Juegos.juego_id
WHERE Clientes.cliente_id = 1;
Este comando nos mostrará todos los juegos comprados por el cliente con cliente_id = 1
(Juan Pérez, en este caso).
5.2. Juegos Comprados por Todos los Clientes
Si deseas ver qué juegos han sido comprados y por quiénes:
SELECT Juegos.nombre AS juego, Clientes.nombre AS cliente, Compras.fecha_compra
FROM Compras
JOIN Juegos ON Compras.juego_id = Juegos.juego_id
JOIN Clientes ON Compras.cliente_id = Clientes.cliente_id;
6. Conclusión
Este ejercicio demuestra cómo diseñar y gestionar una base de datos relacional en MySQL con tres tablas interrelacionadas. Hemos cubierto la creación de tablas con llaves foráneas, la inserción de datos y cómo realizar consultas que involucren varias tablas relacionadas. El uso de una tabla intermedia como Compras es una técnica clave para manejar relaciones de muchos a muchos en bases de datos relacionales.
Este tipo de estructura es útil en sistemas como tiendas en línea, bibliotecas, o cualquier plataforma que gestione transacciones entre usuarios y productos o servicios. ¡Practicar con este ejemplo te ayudará a desarrollar bases de datos robustas y bien estructuradas!
¿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
- Las maravillas de las ciencias biológicas según la Academia SanRoque
- La motivación en Academia SanRoque
- Los docentes también se divierten.
- Comandos Principales en MongoDB y sus Equivalentes en Java
- Las bondades de escribir y leer cada día: herramientas esenciales para la vida académica, empresarial y social
- Immanuel Kant: Disertación contra las IA
- Forma Normal de Boyce-Codd (FNBC) en Bases de Datos
- Las Formas Normales en Bases de Datos
- La importancia de rodearte de personas virtuosas para alcanzar tus metas
ELIGE TU RED FAVORITA Y SÍGUENOS.
AYUDANOS A CRECER Y A LLEGAR A TODAS LAS PERSONAS QUE NOS NECESITAN.
Contenido restringido
Comments are closed