Descripción
Creación de una base de datos con tablas y realización de operaciones CRUD con datos en SQL.
Objetivo
Desarrollar una base de datos para un sistema de gestión de restaurantes que incluya la gestión de pedidos, clientes, platos de la carta y personal empleado del restaurante.
Creación de la Base de Datos
- Base de Datos: restaurant
- Instrucción SQL para Creación:
CREATE DATABASE restaurant;
- Instrucción SQL para Creación:
Diseño de Tablas
En el archivo schema.sql
crear las siguientes tablas:
Tabla dishes (Platos de la Carta)
- Propósito: Almacenar información sobre los platos disponibles.
- Campos:
- dish_id (clave primaria)
- dish_name
- description
- price
Tabla employees (Empleados)
Guarda tu progreso
Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.
Más de 25.000 desarrolladores ya confían en CertiDevs
- Propósito: Registrar a los empleados del restaurante.
- Campos:
- employee_id (clave primaria)
- first_name
- last_name
- position
- salary
Tabla customers (Clientes)
- Propósito: Guardar información de los clientes.
- Campos:
- customer_id (clave primaria)
- first_name
- last_name
- contact_info
Tabla orders (Pedidos)
- Propósito: Gestionar los pedidos realizados por los clientes.
- Campos:
- order_id (clave primaria)
- customer_id (clave foránea de customers)
- employee_id (clave foránea de employees)
- order_date
- total_amount
Tabla order_details (Detalles del Pedido)
- Propósito: Detallar los platos incluidos en cada pedido.
- Campos:
- order_id (clave foránea de orders) (forma parte de la clave primaria)
- dish_id (clave foránea de dishes) (forma parte de la clave primaria)
- quantity
- price
Relaciones entre Tablas
- Many-to-One: la tabla
orders
tiene una clave foránea acustomers
de manera que un cliente puede tener muchos pedidos, también tiene una clave foránea aemployees
de manera que un empleado puede atender muchos pedidos. - Many-To-Many: los platos se relacionan con los pedidos en many to many, de forma que un pedido puede tener muchos platos y un plato puede estar en muchos pedidos. Para ello se crea la tabla
order_details
con clave primaria compuesta apuntando aorders
ydishes
.
Población de las Tablas
- Archivo: data.sql
- Contenido: Código SQL para insertar datos de prueba en cada tabla, se hará en un archivo independiente llamado
data.sql
.
- Contenido: Código SQL para insertar datos de prueba en cada tabla, se hará en un archivo independiente llamado
Consultas a Tablas
- Archivo: queries.sql
- Contenido: Código SQL para realizar consultas diversas:
- Calcular el total de pedidos por fecha.
- Mostrar todos los pedidos realizados por un cliente específico, por ejemplo cliente 1.
- Obtener una lista detallada de los platos en un pedido específico, por ejemplo pedido 1.
- Obtener los salarios promedio de los empleados agrupados por posición.
- Listar los platos más vendidos basados en la cantidad de veces que fueron pedidos.
- Mostrar la cantidad de pedidos atendidos por cada empleado.
- Identificar a los clientes que han realizado el mayor número de pedidos, es decir, mostrar nombre, apellido, número de pedidos y número de pedidos que ha hecho ese cliente.
- Contenido: Código SQL para realizar consultas diversas:
Solución al ejercicio de programación en SQL
¡Desbloquea la solución completa!
Completa el ejercicio de programación en SQL para acceder a la solución paso a paso, explicaciones detalladas y mejores prácticas.
Practica con ejercicios de programación en SQL
Mejora tus habilidades con cientos de ejercicios de práctica, recibe retroalimentación instantánea y obtén tu certificación cuando estés listo.
Asistente de IA
Aprende de tus errores
Progreso
Mide tu avance
Certificación
Valida tus habilidades
Únete a miles de desarrolladores mejorando sus habilidades en SQL