Lista de productos junto con el nombre del proveedor que los suministra. Cuantos productos tiene cada categora en stock? Obtener los productos ordenados por la fecha de creacion de manera descendente. Cual es el proveedor que suministra mas productos? Lista de productos con su precio de compra y fecha de compra correspondiente. Cuantos proveedores suministran productos en la categoria "Hogar"? Obtener la cantidad total de unidades en stock para todos los productos. Cual es el producto con la calificacion mas baja? Lista de productos junto con la cantidad total comprada por los clientes. Cual es el proveedor que suministra el producto mas caro? Obtener los comentarios de los clientes para un producto especifico. realizar la iguinetes consultas en la siguinete base de datos CREATE DATABASE Tienda; USE Tienda; CREATE TABLE categoria ( id_categoria INT AUTO_INCREMENT PRIMARY KEY, nombre_categoria VARCHAR(50) NOT NULL, descripcion_categoria TEXT ); CREATE TABLE producto ( id_producto INT AUTO_INCREMENT PRIMARY KEY, nombre_producto VARCHAR(100) NOT NULL, descripcion_producto TEXT,--text no tiene limite precio DECIMAL(10, 2) NOT NULL,--cambia el tamaño de bits mas peque que float antes del únto es izqquerda y despues del punto es derecha de la coma stock INT NOT NULL, fecha_creacion TIMESTAMP DEFAULT CURRENT_TIMESTAMP,--time es para tiempo actual referente a la mquina AAA-MM-DD-00:00:00 id_categoria INT,--Marcamos un id de su relacion despues de la coma es lo bueno lo que necesitamos un un um de referencia yener cuidado y reespetr caracteristicas de nombres FOREIGN KEY (id_categoria) REFERENCES categoria(id_categoria) );
CREATE TABLE proveedor (--funiona como catalgo como la anterior usamos carchar porque no se pueden poner de mas cosas osea si esciv¿birir pero no mucho id_proveedor INT AUTO_INCREMENT PRIMARY KEY, nombre_proveedor VARCHAR(100) NOT NULL, direccion_proveedor VARCHAR(255), telefono_proveedor VARCHAR(15) ); CREATE TABLE proveedor_producto ( id_proveedor_producto INT AUTO_INCREMENT PRIMARY KEY,--esta tabala se esta refeenciado de la tabla producto y provedoe id_proveedor INT, id_producto INT, precio_compra DECIMAL(10, 2) NOT NULL, fecha_compra DATE, FOREIGN KEY (id_proveedor) REFERENCES proveedor(id_proveedor), FOREIGN KEY (id_producto) REFERENCES producto(id_producto) ); CREATE TABLE opinion_cliente (--refemciada de otras id_opinion INT AUTO_INCREMENT PRIMARY KEY, id_producto INT, nombre_cliente VARCHAR(100) NOT NULL, comentario TEXT, calificacion INT CHECK (calificacion >= 1 AND calificacion <= 5), fecha_opinion TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (id_producto) REFERENCES producto(id_producto) );
--Inserts necesarios:
INSERT INTO categoria (nombre_categoria, descripcion_categoria) VALUES ('Electrónica', 'Productos electrónicos'),--se refenecia con su id estamos ignoaradno fecha t id por que esta en timestap analizando. ('Ropa', 'Ropa y accesorios'), ('Hogar', 'Productos para el hogar'), ('Deportes', 'Artículos deportivos'), ('Libros', 'Libros y literatura'), ('Juguetes', 'Juguetes para niños'), ('Alimentos', 'Productos alimenticios'), ('Muebles', 'Muebles para el hogar'), ('Belleza', 'Productos de belleza'), ('Herramientas', 'Herramientas y mejoras para el hogar');
INSERT INTO producto (nombre_producto, descripcion_producto, precio, stock, id_categoria) VALUES ('Smartphone', 'Teléfono inteligente avanzado', 599.99, 100, 1), ('Camiseta', 'Camiseta de algodón de manga corta', 19.99, 200, 2), ('Aspiradora', 'Aspiradora sin bolsa para el hogar', 129.99, 50, 3), ('Balón de Fútbol', 'Balón oficial de fútbol', 29.99, 30, 4), ('Libro "El Principito"', 'Clásico de la literatura', 12.99, 80, 5), ('Set de Legos', 'Construcción creativa para niños', 39.99, 50, 6), ('Arroz Basmati', 'Arroz aromático de grano largo', 5.99, 150, 7), ('Sofá de Cuero', 'Sofá elegante para el salón', 899.99, 20, 8), ('Kit de Maquillaje', 'Colección de maquillaje de alta calidad', 49.99, 100, 9), ('Taladro Eléctrico', 'Taladro inalámbrico para proyectos de bricolaje', 79.99, 40, 10);
INSERT INTO proveedor (nombre_proveedor, direccion_proveedor, telefono_proveedor) VALUES-- ('ElectroMart', 'Calle Principal 123', '+1234567890'), ('Fashion Trends', 'Avenida de la Moda 456', '+9876543210'), ('Home Essentials', 'Calle del Hogar 789', '+1122334455'), ('Sports Universe', 'Carrera Deportiva 101', '+6677889900'), ('Book Haven', 'Librero 21', '+4455667788');
INSERT INTO proveedor_producto (id_proveedor, id_producto, precio_compra, fecha_compra) VALUES (1, 1, 499.99, '2023-01-15'), (2, 2, 15.99, '2023-02-01'), (3, 3, 109.99, '2023-02-10'), (4, 4, 25.99, '2023-03-05'), (5, 5, 10.99, '2023-03-20');
INSERT INTO opinion_cliente (id_producto, nombre_cliente, comentario, calificacion, fecha_opinion) VALUES (1, 'Carlos', '¡Me encanta este teléfono!', '5', '2023-01-20'), (2, 'El inge', 'La camiseta es cómoda pero un poco grande', '4', '2023-02-05'), (3, 'Patroclo', 'La aspiradora funciona de maravilla', '5', '2023-02-15'), (4, 'Falta Patroclo', 'Balón de fútbol de alta calidad', '5', '2023-03-10'), (5, 'cliente anonimous', 'El Principito es un libro encantador', '5', '2023-03-25'); INSERT INTO opinion_cliente (id_producto, nombre_cliente, comentario, calificacion, fecha_opinion) VALUES (3, 'Patroclo', 'La aspiradora es eficiente', '4', '2023-04-01'), (1, 'El inge', 'Me encanta este smartphone', '5', '2023-04-02'), (5, 'Patroclo', 'El Principito es un libro encantador', '5', '2023-04-03'), (2, 'El inge', 'La camiseta es cómoda pero un poco grande', '4', '2023-04-04'), (4, 'Patroclo', 'Balón de fútbol de alta calidad', '5', '2023-04-05'), (6, 'Patroclo', 'Los Legos mantienen a mis hijos entretenidos durante horas', '4', '2023-04-06'), (8, 'Patroclo', 'El sofá de cuero es muy elegante', '5', '2023-04-07'), (7, 'El inge', 'El arroz basmati es delicioso', '5', '2023-04-08'), (10, 'Patroclo', 'El taladro eléctrico es potente', '4', '2023-04-09'), (9, 'El inge', 'El kit de maquillaje es genial', '5', '2023-04-10');
Para resolver las consultas proporcionadas, primero necesitamos realizar varias consultas SQL en la base de datos "Tienda". Aación, proporcionaré las respuestas a cada una de las consultas:
SELECT p.nombre_producto, pr.nombre_proveedor FROM producto p JOIN proveedor pp ON p.id_producto = pp.id_producto JOIN proveedor pr ON pp.id_pro = pr.id_proveedor;
SELECT c.nombre_categoria, COUNT(p.id_producto) cantidad_en_stock FROM categoria c LEFT JOIN producto p ON c.id_categoria = p.id_categoria GROUP BY c.nombre_categoria;
SELECT * FROM producto ORDER BY fecha_creacion DESC``` 4. Cuál es el proveedor que suministra más productos: ```sql SELECT pr.nombre_proveedor, COUNT(pp.id_producto) AS cantidad_productos_suministrados FROM proveedor pr JOINedor_producto pp ON pr.id_proveedor = pp.id_proveedor GROUP BY pr.nombre_proveedor ORDER BY cantidad_productos_suministrados DESC LIMIT 1``` 5. Lista de productos con su precio de compra y fecha de compra correspondiente: ```sql SELECT p.nombre_producto, pp.precio_compra pp.fecha_compra FROM producto p JOIN proveedor_producto pp ON p.id_producto = pp.id_producto;
SELECT COUNTISTINCT pp.id_proveedor) AS cantidad_proveedores_hogar FROM producto pJOIN proveedor_producto pp ON p.id_producto = pp.id WHERE p.id_categoria = 3;
SELECT SUM(stock) AS cantidad_total_en_stock FROM producto;
SELECT p_producto, MIN(oc.calificacion) AS calificacion_minimaFROM producto p JOIN opinion_cliente oc ON p.id_producto = oc.id_producto;
10. Cuál es el proveedor que suministra el más caro: ```sql SELECT pr.nombre_proveedor p.nombre_producto, pp.precio_compra FROM proveedor pr JOIN proveedor_producto pp ON pr.id_proveedor = pp.id_proveedor JOIN producto p ON pp.id_producto = p.id WHERE pp.precio_compra = (SELECT MAX(precio) FROM producto);
SELECT nombre_cliente, comentario, calificacion, fecha_opinion FROM opinion_cliente WHERE id_producto = 1;
Estas consultas permiten obtener la información solicitada de la base de datos "Tienda" de manera clara y precisa.
Cual es el proveedor que suministra el producto mas caro?
El proveedor que suministra el producto más caro es que suministra el producto con el precio de compra más alto. Para encontrar esta información, puedo ejecutar la siguiente consulta SQL en la base de datos "Tienda":
proveedor pr JOIN proveedor_producto pp ON pr.id_proveedor = pp.id_proveedor JOIN producto p ON pp.id_producto p.id_producto WHERE pp.precio_compra = (SELECT MAX(precio_compra) FROM proveedor_producto);
Con esta consulta, podré identificar el proveedor queinistra el producto con el precio de compra más alto.