# Creación de tablas -- MySQL Script generated by MySQL Workbench -- Fri Mar 6 12:15:49 2026 -- Model: New Model Version: 1.0 -- MySQL Workbench Forward Engineering SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'; -- ----------------------------------------------------- -- Schema mydb -- ----------------------------------------------------- -- ----------------------------------------------------- -- Schema mydb -- ----------------------------------------------------- CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 ; USE `mydb` ; -- ----------------------------------------------------- -- Table `mydb`.`TableLocal` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `mydb`.`TableLocal` ( `idTableLocal` INT NOT NULL AUTO_INCREMENT, `LocalCiudad` VARCHAR(45) NULL, `LocalSector` VARCHAR(45) NULL, PRIMARY KEY (`idTableLocal`)) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `mydb`.`TableClientes` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `mydb`.`TableClientes` ( `idTableClientes` INT NOT NULL AUTO_INCREMENT, `Nombre` VARCHAR(45) NOT NULL, `Telefono` VARCHAR(10) NULL, PRIMARY KEY (`idTableClientes`)) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `mydb`.`TableVenta` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `mydb`.`TableVenta` ( `idTableVenta` INT NOT NULL AUTO_INCREMENT, `TableClientes_idTableClientes` INT NOT NULL, `TableLocal_idTableLocal` INT NOT NULL, `TipoEnvase` VARCHAR(45) NULL, `FechaVenta` TIMESTAMP NULL, PRIMARY KEY (`idTableVenta`), INDEX `fk_TableDetalleVenta_TableLocal_idx` (`TableLocal_idTableLocal` ASC) VISIBLE, INDEX `fk_TableVenta_TableClientes1_idx` (`TableClientes_idTableClientes` ASC) VISIBLE, CONSTRAINT `fk_TableDetalleVenta_TableLocal` FOREIGN KEY (`TableLocal_idTableLocal`) REFERENCES `mydb`.`TableLocal` (`idTableLocal`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_TableVenta_TableClientes1` FOREIGN KEY (`TableClientes_idTableClientes`) REFERENCES `mydb`.`TableClientes` (`idTableClientes`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `mydb`.`TableSabores` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `mydb`.`TableSabores` ( `idTableSabores` INT NOT NULL AUTO_INCREMENT, `NombreSabor` VARCHAR(45) NULL, `PrecioUnitarioSabor` INT NULL, PRIMARY KEY (`idTableSabores`)) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `mydb`.`TableDetalleVentas` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `mydb`.`TableDetalleVentas` ( `TableVenta_idTableVenta` INT NOT NULL, `TableSabores_idTableSabores` INT NOT NULL, `Cantidad` INT NULL, PRIMARY KEY (`TableVenta_idTableVenta`, `TableSabores_idTableSabores`), INDEX `fk_TableVentas_TableSabores1_idx` (`TableSabores_idTableSabores` ASC) VISIBLE, INDEX `fk_TableDetalleVentas_TableVenta1_idx` (`TableVenta_idTableVenta` ASC) VISIBLE, CONSTRAINT `fk_TableVentas_TableSabores1` FOREIGN KEY (`TableSabores_idTableSabores`) REFERENCES `mydb`.`TableSabores` (`idTableSabores`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_TableDetalleVentas_TableVenta1` FOREIGN KEY (`TableVenta_idTableVenta`) REFERENCES `mydb`.`TableVenta` (`idTableVenta`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; # Carga de datos USE `mydb` ; -- 1. CARGA DE TABLAS MAESTRAS (Sin dependencias) -- Insertar datos en TableLocal INSERT INTO `mydb`.`TableLocal` (`LocalCiudad`, `LocalSector`) VALUES ('Quito', 'Norte - Iñaquito'), ('Guayaquil', 'Samborondón'), ('Cuenca', 'Centro Histórico'), ('Manta', 'El Murciélago'), ('Quito', 'Valle de Cumbayá'); -- Insertar datos en TableClientes INSERT INTO `mydb`.`TableClientes` (`Nombre`, `Telefono`) VALUES ('Juan Pérez', '0991234567'), ('María García', '0987654321'), ('Carlos López', '0976543210'), ('Ana Martínez', '0965432109'), ('Luis Rodríguez', '0954321098'); -- Insertar datos en TableSabores -- Nota: El precio está en formato INT (podrían ser centavos, ej: 250 = $2.50) INSERT INTO `mydb`.`TableSabores` (`NombreSabor`, `PrecioUnitarioSabor`) VALUES ('Chocolate Suizo', 250), ('Vainilla Gourmet', 200), ('Fresa Silvestre', 225), ('Pistacho', 300), ('Manjar de Leche', 275); -- 2. CARGA DE TABLAS DEPENDIENTES (Requieren IDs existentes) -- Insertar datos en TableVenta -- Asumimos que los IDs autoincrementales generados arriba son del 1 al 5 INSERT INTO `mydb`.`TableVenta` (`TableClientes_idTableClientes`, `TableLocal_idTableLocal`, `TipoEnvase`, `FechaVenta`) VALUES (1, 1, 'Tarrina Mediana', CURRENT_TIMESTAMP), (2, 2, 'Cono Simple', CURRENT_TIMESTAMP), (3, 3, 'Vaso Grande', CURRENT_TIMESTAMP), (4, 1, 'Tarrina Familiar', CURRENT_TIMESTAMP), (5, 5, 'Vaso Pequeño', CURRENT_TIMESTAMP); -- Insertar datos en TableDetalleVentas -- Esta tabla vincula la Venta con los Sabores y la cantidad INSERT INTO `mydb`.`TableDetalleVentas` (`TableVenta_idTableVenta`, `TableSabores_idTableSabores`, `Cantidad`) VALUES (1, 1, 2), -- Venta 1 compró 2 de Chocolate (1, 2, 1), -- Venta 1 también compró 1 de Vainilla (2, 3, 1), -- Venta 2 compró 1 de Fresa (3, 4, 3), -- Venta 3 compró 3 de Pistacho (4, 5, 2), -- Venta 4 compró 2 de Manjar (5, 1, 1); -- Venta 5 compró 1 de Chocolate