MariaDB [(none)]> CREATE TABLE cliente ( -> documento_cliente INT NOT NULL PRIMARY KEY, -- Clave Primaria -> nombre1 VARCHAR(20) NOT NULL, -- Primer nombre -> nombre2 VARCHAR(20), -- Segundo nombre -> apellido1 VARCHAR(20) NOT NULL, -- Primer apellido -> apellido2 VARCHAR(20), -- Segundo apellido -> direccion VARCHAR(50) NOT NULL, -- Dirección -> correo VARCHAR(50) NOT NULL, -- Correo electrónico -> telefono VARCHAR(15) NOT NULL, -- Teléfono -> genero ENUM('Masculino', 'Femenino', 'Otro') NOT NULL -- Género -> ); ERROR 1046 (3D000): No database selected MariaDB [(none)]> use Autopartes; ERROR 1049 (42000): Unknown database 'Autopartes' MariaDB [(none)]> use AutoPartes; Database changed MariaDB [AutoPartes]> CREATE TABLE cliente ( -> documento_cliente INT NOT NULL PRIMARY KEY, -- Clave Primaria -> nombre1 VARCHAR(20) NOT NULL, -- Primer nombre -> nombre2 VARCHAR(20), -- Segundo nombre -> apellido1 VARCHAR(20) NOT NULL, -- Primer apellido -> apellido2 VARCHAR(20), -- Segundo apellido -> direccion VARCHAR(50) NOT NULL, -- Dirección -> correo VARCHAR(50) NOT NULL, -- Correo electrónico -> telefono VARCHAR(15) NOT NULL, -- Teléfono -> genero ENUM('Masculino', 'Femenino', 'Otro') NOT NULL -- Género -> ); Query OK, 0 rows affected (0,010 sec) MariaDB [AutoPartes]> show tables; +----------------------+ | Tables_in_AutoPartes | +----------------------+ | cliente | +----------------------+ 1 row in set (0,001 sec) MariaDB [AutoPartes]> describe cliente; +-------------------+-------------------------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------------+-------------------------------------+------+-----+---------+-------+ | documento_cliente | int(11) | NO | PRI | NULL | | | nombre1 | varchar(20) | NO | | NULL | | | nombre2 | varchar(20) | YES | | NULL | | | apellido1 | varchar(20) | NO | | NULL | | | apellido2 | varchar(20) | YES | | NULL | | | direccion | varchar(50) | NO | | NULL | | | correo | varchar(50) | NO | | NULL | | | telefono | varchar(15) | NO | | NULL | | | genero | enum('Masculino','Femenino','Otro') | NO | | NULL | | +-------------------+-------------------------------------+------+-----+---------+-------+ 9 rows in set (0,002 sec) MariaDB [AutoPartes]> CREATE TABLE empleado ( -> documento_empleado INT NOT NULL PRIMARY KEY, -- Clave Primaria -> nombre1 VARCHAR(20) NOT NULL, -> nombre2 VARCHAR(20), -> apellido1 VARCHAR(20) NOT NULL, -> apellido2 VARCHAR(20), -> direccion VARCHAR(50) NOT NULL, -> correo VARCHAR(50) NOT NULL, -> telefono VARCHAR(15) NOT NULL, -> genero ENUM('Masculino', 'Femenino', 'Otro') NOT NULL -> ); Query OK, 0 rows affected (0,016 sec) MariaDB [AutoPartes]> CREATE TABLE proveedores ( -> id_proveedores INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> nombre_proveedores VARCHAR(50) NOT NULL, -> correo VARCHAR(50) NOT NULL, -> telefono VARCHAR(15) NOT NULL -> ); Query OK, 0 rows affected (0,010 sec) MariaDB [AutoPartes]> MariaDB [AutoPartes]> show tables; +----------------------+ | Tables_in_AutoPartes | +----------------------+ | cliente | | empleado | | proveedores | +----------------------+ 3 rows in set (0,001 sec) MariaDB [AutoPartes]> CREATE TABLE categoria_productos ( -> id_categoria INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> categoria VARCHAR(50) NOT NULL, -> descripcion VARCHAR(255) NOT NULL -> ); Query OK, 0 rows affected (0,009 sec) MariaDB [AutoPartes]> CREATE TABLE productos ( -> id_producto INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> id_categoria INT NOT NULL, -> precio FLOAT(10,2) NOT NULL, -> valor_venta FLOAT(10,2) NOT NULL, -> nombre_producto VARCHAR(50) NOT NULL, -> descripcion VARCHAR(255), -> FOREIGN KEY (id_categoria) REFERENCES categoria_productos(id_categoria) -> ); Query OK, 0 rows affected (0,011 sec) MariaDB [AutoPartes]> CREATE TABLE inventario ( -> id_producto INT NOT NULL, -> cantidad INT NOT NULL, -> PRIMARY KEY (id_producto), -> FOREIGN KEY (id_producto) REFERENCES productos(id_producto) -> ); Query OK, 0 rows affected (0,014 sec) MariaDB [AutoPartes]> CREATE TABLE roles ( -> id_rol INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> rol VARCHAR(20) NOT NULL, -> descripcion VARCHAR(255) -> ); Query OK, 0 rows affected (0,009 sec) MariaDB [AutoPartes]> CREATE TABLE usuario ( -> id_empleado INT NOT NULL, -> id_rol INT NOT NULL, -> PRIMARY KEY (id_empleado, id_rol), -> FOREIGN KEY (id_empleado) REFERENCES empleado(documento_empleado), -> FOREIGN KEY (id_rol) REFERENCES roles(id_rol) -> ); Query OK, 0 rows affected (0,018 sec) MariaDB [AutoPartes]> CREATE TABLE factura ( -> id_factura INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> id_cliente INT NOT NULL, -> id_empleado INT NOT NULL, -> fecha DATE NOT NULL, -> total_venta FLOAT(10,2), -> FOREIGN KEY (id_cliente) REFERENCES cliente(documento_cliente), -> FOREIGN KEY (id_empleado) REFERENCES empleado(documento_empleado) -> ); Query OK, 0 rows affected (0,012 sec) MariaDB [AutoPartes]> CREATE TABLE detalle_factura ( -> id_detalle_factura INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> id_factura INT NOT NULL, -> id_producto INT NOT NULL, -> cantidad_producto INT NOT NULL, -> total_productos FLOAT(10,2) NOT NULL, -> FOREIGN KEY (id_producto) REFERENCES productos(id_producto), -> FOREIGN KEY (id_factura) REFERENCES factura(id_factura) -> ); Query OK, 0 rows affected (0,014 sec) MariaDB [AutoPartes]> CREATE TABLE metodo_pago ( -> id_metodo_pago INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> nombre_metodo ENUM('Efectivo', 'Tarjeta', 'Transferencia', 'Cheque') NOT NULL -> ); Query OK, 0 rows affected (0,015 sec) MariaDB [AutoPartes]> CREATE TABLE pagos ( -> id_factura INT NOT NULL, -> id_metodo_pago INT NOT NULL, -> pago BOOLEAN DEFAULT FALSE, -> PRIMARY KEY (id_factura, id_metodo_pago), -> FOREIGN KEY (id_factura) REFERENCES factura(id_factura), -> FOREIGN KEY (id_metodo_pago) REFERENCES metodo_pago(id_metodo_pago) -> ); Query OK, 0 rows affected (0,009 sec) MariaDB [AutoPartes]> show tables; +----------------------+ | Tables_in_AutoPartes | +----------------------+ | categoria_productos | | cliente | | detalle_factura | | empleado | | factura | | inventario | | metodo_pago | | pagos | | productos | | proveedores | | roles | | usuario | +----------------------+ 12 rows in set (0,001 sec) MariaDB [AutoPartes]> INSERT INTO cliente (documento_cliente, nombre1, nombre2, apellido1, apellido2, direccion, correo, telefono, genero) -> VALUES -> (1001, 'Carlos', 'Andrés', 'Gómez', 'Pérez', 'Calle 10 #23-45', 'carlos.gomez@example.com', '3124567890', 'Masculino'), -> (1002, 'Laura', 'Marcela', 'Rodríguez', 'López', 'Carrera 15 #8-22', 'laura.rodriguez@example.com', '3109876543', 'Femenino'), -> (1003, 'Andrés', 'Felipe', 'Ramírez', 'Gutiérrez', 'Av. Siempre Viva 742', 'andres.ramirez@example.com', '3012233445', 'Masculino'), -> (1004, 'Mariana', NULL, 'Torres', 'Díaz', 'Calle 50 #20-18', 'mariana.torres@example.com', '3209988776', 'Femenino'), -> (1005, 'Julián', 'David', 'Martínez', 'Castro', 'Transversal 9 #34-12', 'julian.martinez@example.com', '3135544332', 'Masculino'), -> (1006, 'Sofía', 'Alejandra', 'Morales', 'Vega', 'Carrera 25 #9-30', 'sofia.morales@example.com', '3008877665', 'Femenino'), -> (1007, 'Diego', NULL, 'Hernández', 'Rojas', 'Calle 12 #14-56', 'diego.hernandez@example.com', '3111122233', 'Masculino'), -> (1008, 'Valentina', 'Isabel', 'Suárez', 'Pardo', 'Carrera 7 #45-67', 'valentina.suarez@example.com', '3144455566', 'Femenino'), -> (1009, 'Samuel', 'Esteban', 'López', 'Jiménez', 'Calle 8 #10-11', 'samuel.lopez@example.com', '3156677889', 'Masculino'), -> (1010, 'Camila', 'Fernanda', 'Cárdenas', 'Ruiz', 'Carrera 40 #60-20', 'camila.cardenas@example.com', '3183344556', 'Femenino'); Query OK, 10 rows affected (0,009 sec) Records: 10 Duplicates: 0 Warnings: 0 MariaDB [AutoPartes]> show cliente; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'cliente' at line 1 MariaDB [AutoPartes]> select*from cliente; +-------------------+-----------+-----------+------------+------------+----------------------+------------------------------+------------+-----------+ | documento_cliente | nombre1 | nombre2 | apellido1 | apellido2 | direccion | correo | telefono | genero | +-------------------+-----------+-----------+------------+------------+----------------------+------------------------------+------------+-----------+ | 1001 | Carlos | Andrés | Gómez | Pérez | Calle 10 #23-45 | carlos.gomez@example.com | 3124567890 | Masculino | | 1002 | Laura | Marcela | Rodríguez | López | Carrera 15 #8-22 | laura.rodriguez@example.com | 3109876543 | Femenino | | 1003 | Andrés | Felipe | Ramírez | Gutiérrez | Av. Siempre Viva 742 | andres.ramirez@example.com | 3012233445 | Masculino | | 1004 | Mariana | NULL | Torres | Díaz | Calle 50 #20-18 | mariana.torres@example.com | 3209988776 | Femenino | | 1005 | Julián | David | Martínez | Castro | Transversal 9 #34-12 | julian.martinez@example.com | 3135544332 | Masculino | | 1006 | Sofía | Alejandra | Morales | Vega | Carrera 25 #9-30 | sofia.morales@example.com | 3008877665 | Femenino | | 1007 | Diego | NULL | Hernández | Rojas | Calle 12 #14-56 | diego.hernandez@example.com | 3111122233 | Masculino | | 1008 | Valentina | Isabel | Suárez | Pardo | Carrera 7 #45-67 | valentina.suarez@example.com | 3144455566 | Femenino | | 1009 | Samuel | Esteban | López | Jiménez | Calle 8 #10-11 | samuel.lopez@example.com | 3156677889 | Masculino | | 1010 | Camila | Fernanda | Cárdenas | Ruiz | Carrera 40 #60-20 | camila.cardenas@example.com | 3183344556 | Femenino | +-------------------+-----------+-----------+------------+------------+----------------------+------------------------------+------------+-----------+ 10 rows in set (0,001 sec) MariaDB [AutoPartes]> INSERT INTO empleado (documento_empleado, nombre1, nombre2, apellido1, apellido2, direccion, correo, telefono, genero) -> VALUES -> (2001, 'Juan', 'Sebastián', 'Pérez', 'Gómez', 'Calle 5 #12-34', 'juan.perez@empresa.com', '3112233445', 'Masculino'), -> (2002, 'Ana', 'María', 'López', 'Rodríguez', 'Carrera 8 #20-10', 'ana.lopez@empresa.com', '3001122334', 'Femenino'), -> (2003, 'Carlos', 'Alberto', 'Jiménez', 'Rojas', 'Av. Central #45-09', 'carlos.jimenez@empresa.com', '3135566778', 'Masculino'), -> (2004, 'Paula', 'Andrea', 'Castro', 'Ruiz', 'Transversal 18 #25-36', 'paula.castro@empresa.com', '3109988776', 'Femenino'), -> (2005, 'Felipe', 'Andrés', 'González', 'Vargas', 'Calle 9 #7-14', 'felipe.gonzalez@empresa.com', '3124455667', 'Masculino'), -> (2006, 'María', 'Camila', 'Torres', 'Luna', 'Carrera 30 #45-50', 'maria.torres@empresa.com', '3201122443', 'Femenino'), -> (2007, 'Andrés', 'Mauricio', 'Ramírez', 'Soto', 'Calle 40 #15-60', 'andres.ramirez@empresa.com', '3117788990', 'Masculino'), -> (2008, 'Lucía', 'Isabel', 'Mendoza', 'Pardo', 'Carrera 12 #22-11', 'lucia.mendoza@empresa.com', '3145566778', 'Femenino'), -> (2009, 'Santiago', NULL, 'Herrera', 'Morales', 'Av. Las Palmas #50-23', 'santiago.herrera@empresa.com', '3168899001', 'Masculino'), -> (2010, 'Daniela', 'Fernanda', 'Rincón', 'Martínez', 'Calle 25 #33-12', 'daniela.rincon@empresa.com', '3183344557', 'Femenino'); Query OK, 10 rows affected (0,009 sec) Records: 10 Duplicates: 0 Warnings: 0 MariaDB [AutoPartes]> select*from empleado; +--------------------+----------+------------+-----------+------------+-----------------------+------------------------------+------------+-----------+ | documento_empleado | nombre1 | nombre2 | apellido1 | apellido2 | direccion | correo | telefono | genero | +--------------------+----------+------------+-----------+------------+-----------------------+------------------------------+------------+-----------+ | 2001 | Juan | Sebastián | Pérez | Gómez | Calle 5 #12-34 | juan.perez@empresa.com | 3112233445 | Masculino | | 2002 | Ana | María | López | Rodríguez | Carrera 8 #20-10 | ana.lopez@empresa.com | 3001122334 | Femenino | | 2003 | Carlos | Alberto | Jiménez | Rojas | Av. Central #45-09 | carlos.jimenez@empresa.com | 3135566778 | Masculino | | 2004 | Paula | Andrea | Castro | Ruiz | Transversal 18 #25-36 | paula.castro@empresa.com | 3109988776 | Femenino | | 2005 | Felipe | Andrés | González | Vargas | Calle 9 #7-14 | felipe.gonzalez@empresa.com | 3124455667 | Masculino | | 2006 | María | Camila | Torres | Luna | Carrera 30 #45-50 | maria.torres@empresa.com | 3201122443 | Femenino | | 2007 | Andrés | Mauricio | Ramírez | Soto | Calle 40 #15-60 | andres.ramirez@empresa.com | 3117788990 | Masculino | | 2008 | Lucía | Isabel | Mendoza | Pardo | Carrera 12 #22-11 | lucia.mendoza@empresa.com | 3145566778 | Femenino | | 2009 | Santiago | NULL | Herrera | Morales | Av. Las Palmas #50-23 | santiago.herrera@empresa.com | 3168899001 | Masculino | | 2010 | Daniela | Fernanda | Rincón | Martínez | Calle 25 #33-12 | daniela.rincon@empresa.com | 3183344557 | Femenino | +--------------------+----------+------------+-----------+------------+-----------------------+------------------------------+------------+-----------+ 10 rows in set (0,000 sec) MariaDB [AutoPartes]> INSERT INTO proveedores (nombre_proveedores, correo, telefono) -> VALUES -> ('TecnoPlus S.A.S.', 'contacto@tecnoplus.com', '3102233445'), -> ('Distribuidora Eléctrica Andina', 'ventas@andinaelectric.com', '3125566778'), -> ('Servicios Industriales Ramírez', 'juan.ramirez@serviciosramirez.com', '3007788990'), -> ('Construcciones del Norte Ltda.', 'info@construccionesnorte.com', '3156677889'), -> ('Transportes Omega S.A.', 'logistica@omega.com', '3164455667'), -> ('Insumos Médicos VitalCare', 'contacto@vitalcare.com', '3119988776'), -> ('Panadería La Espiga de Oro', 'laespiga@gmail.com', '3205566778'), -> ('Juan Pablo Cárdenas', 'jp.cardenas@hotmail.com', '3132233445'), -> ('Importadora GlobalTrade', 'ventas@globaltrade.com', '3008899001'), -> ('Ferretería El Tornillo Feliz', 'eltornillo@ferreteria.com', '3197766554'); Query OK, 10 rows affected (0,004 sec) Records: 10 Duplicates: 0 Warnings: 0 MariaDB [AutoPartes]> INSERT INTO categoria_productos (categoria, descripcion) -> VALUES -> ('Motor', 'Componentes relacionados con el sistema del motor: pistones, bujías, filtros de aceite, correas y juntas.'), -> ('Suspensión', 'Partes encargadas de la estabilidad del vehículo: amortiguadores, resortes, brazos de control y bujes.'), -> ('Frenos', 'Sistemas de frenado: pastillas, discos, zapatas, líquido de frenos y pinzas.'), -> ('Transmisión', 'Piezas del sistema de transmisión: embragues, cajas de cambios, ejes y diferenciales.'), -> ('Sistema Eléctrico', 'Elementos eléctricos y electrónicos: baterías, alternadores, sensores y cables.'), -> ('Carrocería', 'Partes externas del vehículo: guardabarros, puertas, espejos, parachoques y capós.'), -> ('Refrigeración', 'Sistema de enfriamiento del motor: radiadores, bombas de agua, ventiladores y termostatos.'), -> ('Escape', 'Partes del sistema de escape: silenciadores, catalizadores, tuberías y juntas.'), -> ('Lubricantes y Aceites', 'Aceites de motor, grasas, refrigerantes, líquidos hidráulicos y aditivos.'), -> ('Herramientas y Equipos', 'Herramientas manuales y eléctricas utilizadas en mantenimiento y reparación automotriz.'); Query OK, 10 rows affected (0,003 sec) Records: 10 Duplicates: 0 Warnings: 0 MariaDB [AutoPartes]> INSERT INTO productos (id_categoria, precio, valor_venta, nombre_producto, descripcion) -> VALUES -> (1, 150000.00, 180000.00, 'Filtro de aceite Bosch', 'Filtro de aceite compatible con motores de gasolina y diésel, mejora la lubricación del motor.'), -> (1, 320000.00, 380000.00, 'Bujías NGK Iridium', 'Juego de 4 bujías de iridio para alto rendimiento y durabilidad.'), -> (2, 280000.00, 340000.00, 'Amortiguador trasero Monroe', 'Amortiguador hidráulico para vehículos de gama media, mejora la estabilidad y confort.'), -> (3, 120000.00, 150000.00, 'Pastillas de freno Brembo', 'Pastillas de freno de cerámica para autos compactos, alta durabilidad y frenado eficiente.'), -> (4, 950000.00, 1100000.00, 'Embrague LUK completo', 'Kit de embrague con prensa, disco y balinera, ideal para transmisión manual.'), -> (5, 480000.00, 530000.00, 'Alternador Bosch 12V 90A', 'Alternador de alta eficiencia para vehículos de gasolina, con garantía de 1 año.'), -> (6, 350000.00, 400000.00, 'Espejo retrovisor derecho', 'Espejo lateral con ajuste manual, carcasa negra resistente a impactos.'), -> (7, 420000.00, 480000.00, 'Radiador de aluminio', 'Radiador de refrigeración de alto rendimiento para vehículos de 4 cilindros.'), -> (8, 250000.00, 295000.00, 'Silenciador universal', 'Silenciador trasero de acero inoxidable con baja restricción de flujo.'), -> (9, 80000.00, 95000.00, 'Aceite de motor Castrol 10W40', 'Aceite semisintético de alta protección para motores a gasolina.'), -> (10, 150000.00, 185000.00, 'Juego de llaves combinadas Truper', 'Set de 12 llaves de acero al cromo vanadio, ideal para talleres mecánicos.'); Query OK, 11 rows affected (0,004 sec) Records: 11 Duplicates: 0 Warnings: 0 MariaDB [AutoPartes]> INSERT INTO inventario (id_producto, cantidad) -> VALUES -> (1, 45), -- Filtro de aceite Bosch -> (2, 60), -- Bujías NGK Iridium -> (3, 30), -- Amortiguador trasero Monroe -> (4, 80), -- Pastillas de freno Brembo -> (5, 25), -- Embrague LUK completo -> (6, 20), -- Alternador Bosch 12V 90A -> (7, 15), -- Espejo retrovisor derecho -> (8, 35), -- Radiador de aluminio -> (9, 100), -- Silenciador universal -> (10, 50); -- Juego de llaves combinadas Truper Query OK, 10 rows affected (0,008 sec) Records: 10 Duplicates: 0 Warnings: 0 MariaDB [AutoPartes]> INSERT INTO roles (rol, descripcion) -> VALUES -> ('Administrador', 'Encargado de la gestión general de la empresa, control de inventario, empleados y proveedores.'), -> ('Mecánico', 'Responsable del mantenimiento, reparación e instalación de autopartes en los vehículos.'), -> ('Vendedor', 'Atiende a los clientes, gestiona cotizaciones, ventas y facturación de productos.'), -> ('Almacenista', 'Controla la entrada y salida de productos del inventario, asegurando el orden y registro del almacén.'); Query OK, 4 rows affected (0,004 sec) Records: 4 Duplicates: 0 Warnings: 0 MariaDB [AutoPartes]> INSERT INTO usuario (id_empleado, id_rol) -> VALUES -> (2001, 1), -- Juan Pérez → Administrador -> (2002, 3), -- Ana López → Vendedora -> (2003, 4), -- Carlos Jiménez → Almacenista -> (2004, 2), -- Paula Castro → Mecánica -> (2005, 3), -- Felipe González → Vendedor -> (2006, 2), -- María Torres → Mecánica -> (2007, 4), -- Andrés Ramírez → Almacenista -> (2008, 3), -- Lucía Mendoza → Vendedora -> (2009, 2), -- Santiago Herrera → Mecánico -> (2010, 1); -- Daniela Rincón → Administradora Query OK, 10 rows affected (0,008 sec) Records: 10 Duplicates: 0 Warnings: 0 MariaDB [AutoPartes]> notee; MariaDB [AutoPartes]> describe pagos; +----------------+------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------------+------------+------+-----+---------+-------+ | id_factura | int(11) | NO | PRI | NULL | | | id_metodo_pago | int(11) | NO | PRI | NULL | | | pago | tinyint(1) | YES | | 0 | | +----------------+------------+------+-----+---------+-------+ 3 rows in set (0,004 sec) MariaDB [AutoPartes]> descibe metodo_pago -> ; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'descibe metodo_pago' at line 1 MariaDB [AutoPartes]> describe metodo_pago -> ; +----------------+-----------------------------------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+-----------------------------------------------------+------+-----+---------+----------------+ | id_metodo_pago | int(11) | NO | PRI | NULL | auto_increment | | nombre_metodo | enum('Efectivo','Tarjeta','Transferencia','Cheque') | NO | | NULL | | +----------------+-----------------------------------------------------+------+-----+---------+----------------+ 2 rows in set (0,001 sec) MariaDB [AutoPartes]> describe factura; +-------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+----------------+ | id_factura | int(11) | NO | PRI | NULL | auto_increment | | id_cliente | int(11) | NO | MUL | NULL | | | id_empleado | int(11) | NO | MUL | NULL | | | fecha | date | NO | | NULL | | | total_venta | float(10,2) | YES | | NULL | | +-------------+-------------+------+-----+---------+----------------+ 5 rows in set (0,001 sec) MariaDB [AutoPartes]> INSERT INTO factura (id_cliente, id_empleado, fecha, total_venta) -> VALUES (1001, 2003, '2025-11-08', 0.00); Query OK, 1 row affected (0,006 sec) MariaDB [AutoPartes]> select*from factura; +------------+------------+-------------+------------+-------------+ | id_factura | id_cliente | id_empleado | fecha | total_venta | +------------+------------+-------------+------------+-------------+ | 1 | 1001 | 2003 | 2025-11-08 | 0.00 | +------------+------------+-------------+------------+-------------+ 1 row in set (0,001 sec) MariaDB [AutoPartes]> INSERT INTO detalle_factura (id_factura, id_producto, cantidad_producto, total_productos) -> VALUES -> (1, 1, 2, 360000.00), -- 2 Filtros de aceite Bosch (180000 c/u) -> (1, 4, 1, 150000.00), -- 1 Pastilla de freno Brembo (150000) -> (1, 9, 3, 285000.00), -- 3 Aceites de motor Castrol 10W40 (95000 c/u) -> (1, 10, 1, 185000.00); -- 1 Juego de llaves combinadas Truper (185000) Query OK, 4 rows affected (0,004 sec) Records: 4 Duplicates: 0 Warnings: 0 MariaDB [AutoPartes]> select*from detalle_factura; +--------------------+------------+-------------+-------------------+-----------------+ | id_detalle_factura | id_factura | id_producto | cantidad_producto | total_productos | +--------------------+------------+-------------+-------------------+-----------------+ | 1 | 1 | 1 | 2 | 360000.00 | | 2 | 1 | 4 | 1 | 150000.00 | | 3 | 1 | 9 | 3 | 285000.00 | | 4 | 1 | 10 | 1 | 185000.00 | +--------------------+------------+-------------+-------------------+-----------------+ 4 rows in set (0,001 sec) MariaDB [AutoPartes]> select*from producto; ERROR 1146 (42S02): Table 'AutoPartes.producto' doesn't exist MariaDB [AutoPartes]> select*from productos; +-------------+--------------+-----------+-------------+-----------------------------------+--------------------------------------------------------------------------------------------------+ | id_producto | id_categoria | precio | valor_venta | nombre_producto | descripcion | +-------------+--------------+-----------+-------------+-----------------------------------+--------------------------------------------------------------------------------------------------+ | 1 | 1 | 150000.00 | 180000.00 | Filtro de aceite Bosch | Filtro de aceite compatible con motores de gasolina y diésel, mejora la lubricación del motor. | | 2 | 1 | 320000.00 | 380000.00 | Bujías NGK Iridium | Juego de 4 bujías de iridio para alto rendimiento y durabilidad. | | 3 | 2 | 280000.00 | 340000.00 | Amortiguador trasero Monroe | Amortiguador hidráulico para vehículos de gama media, mejora la estabilidad y confort. | | 4 | 3 | 120000.00 | 150000.00 | Pastillas de freno Brembo | Pastillas de freno de cerámica para autos compactos, alta durabilidad y frenado eficiente. | | 5 | 4 | 950000.00 | 1100000.00 | Embrague LUK completo | Kit de embrague con prensa, disco y balinera, ideal para transmisión manual. | | 6 | 5 | 480000.00 | 530000.00 | Alternador Bosch 12V 90A | Alternador de alta eficiencia para vehículos de gasolina, con garantía de 1 año. | | 7 | 6 | 350000.00 | 400000.00 | Espejo retrovisor derecho | Espejo lateral con ajuste manual, carcasa negra resistente a impactos. | | 8 | 7 | 420000.00 | 480000.00 | Radiador de aluminio | Radiador de refrigeración de alto rendimiento para vehículos de 4 cilindros. | | 9 | 8 | 250000.00 | 295000.00 | Silenciador universal | Silenciador trasero de acero inoxidable con baja restricción de flujo. | | 10 | 9 | 80000.00 | 95000.00 | Aceite de motor Castrol 10W40 | Aceite semisintético de alta protección para motores a gasolina. | | 11 | 10 | 150000.00 | 185000.00 | Juego de llaves combinadas Truper | Set de 12 llaves de acero al cromo vanadio, ideal para talleres mecánicos. | +-------------+--------------+-----------+-------------+-----------------------------------+--------------------------------------------------------------------------------------------------+ 11 rows in set (0,001 sec) MariaDB [AutoPartes]> SELECT -> p.valor_venta * 2 AS total_calculado -> FROM productos p -> WHERE p.id_producto = 4; +-----------------+ | total_calculado | +-----------------+ | 300000.00 | +-----------------+ 1 row in set (0,007 sec) MariaDB [AutoPartes]> DELIMITER // MariaDB [AutoPartes]> CREATE TRIGGER calcular_total_producto -> BEFORE INSERT ON detalle_factura -> FOR EACH ROW -> BEGIN -> DECLARE precio FLOAT(10,2); -> -> -- Obtenemos el valor de venta del producto -> SELECT valor_venta -> INTO precio -> FROM productos -> WHERE id_producto = NEW.id_producto; -> -> -- Calculamos el total -> SET NEW.total_productos = precio * NEW.cantidad_producto; -> END// Query OK, 0 rows affected (0,011 sec) MariaDB [AutoPartes]> DELIMITER; -> ; -> // ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DELIMITER' at line 1 MariaDB [AutoPartes]> DELIMITER ; MariaDB [AutoPartes]> SELECT valor_venta * 2 AS total_calculado -> FROM productos -> WHERE id_producto = 5; +-----------------+ | total_calculado | +-----------------+ | 2200000.00 | +-----------------+ 1 row in set (0,001 sec) MariaDB [AutoPartes]> INSERT INTO detalle_factura (id_factura, id_producto, cantidad_producto, total_productos) -> VALUES (1, 5, 2, 0); Query OK, 1 row affected (0,009 sec) MariaDB [AutoPartes]> select*from detalle_factura; +--------------------+------------+-------------+-------------------+-----------------+ | id_detalle_factura | id_factura | id_producto | cantidad_producto | total_productos | +--------------------+------------+-------------+-------------------+-----------------+ | 1 | 1 | 1 | 2 | 360000.00 | | 2 | 1 | 4 | 1 | 150000.00 | | 3 | 1 | 9 | 3 | 285000.00 | | 4 | 1 | 10 | 1 | 185000.00 | | 5 | 1 | 5 | 2 | 2200000.00 | +--------------------+------------+-------------+-------------------+-----------------+ 5 rows in set (0,001 sec) MariaDB [AutoPartes]> DELIMITER // MariaDB [AutoPartes]> CREATE TRIGGER actualizar_total_factura -> AFTER INSERT ON detalle_factura -> FOR EACH ROW -> BEGIN -> DECLARE total FLOAT(10,2); -> SELECT SUM(total_productos) -> INTO total -> FROM detalle_factura -> WHERE id_factura = NEW.id_factura; -> UPDATE factura -> SET total_venta = total -> WHERE id_factura = NEW.id_factura; -> END; -> // Query OK, 0 rows affected (0,011 sec) MariaDB [AutoPartes]> DELIMITER ; MariaDB [AutoPartes]> INSERT INTO detalle_factura (id_factura, id_producto, cantidad_producto, total_productos) -> VALUES (1, 3, 1, 0); Query OK, 1 row affected (0,007 sec) MariaDB [AutoPartes]> select*from detalle_factura; +--------------------+------------+-------------+-------------------+-----------------+ | id_detalle_factura | id_factura | id_producto | cantidad_producto | total_productos | +--------------------+------------+-------------+-------------------+-----------------+ | 1 | 1 | 1 | 2 | 360000.00 | | 2 | 1 | 4 | 1 | 150000.00 | | 3 | 1 | 9 | 3 | 285000.00 | | 4 | 1 | 10 | 1 | 185000.00 | | 5 | 1 | 5 | 2 | 2200000.00 | | 6 | 1 | 3 | 1 | 340000.00 | +--------------------+------------+-------------+-------------------+-----------------+ 6 rows in set (0,001 sec) MariaDB [AutoPartes]> select*from factura; +------------+------------+-------------+------------+-------------+ | id_factura | id_cliente | id_empleado | fecha | total_venta | +------------+------------+-------------+------------+-------------+ | 1 | 1001 | 2003 | 2025-11-08 | 3520000.00 | +------------+------------+-------------+------------+-------------+ 1 row in set (0,001 sec) MariaDB [AutoPartes]> DELIMITER // MariaDB [AutoPartes]> CREATE TRIGGER actualizar_total_factura_delete -> AFTER DELETE ON detalle_factura -> FOR EACH ROW -> BEGIN -> DECLARE nuevo_total FLOAT(10,2); -> -> -- Recalcular el total sumando los valores actuales de los productos de esa factura -> SELECT IFNULL(SUM(total_productos), 0) -> INTO nuevo_total -> FROM detalle_factura -> WHERE id_factura = OLD.id_factura; -> -> -- Actualizar el total en la tabla factura -> UPDATE factura -> SET total_venta = nuevo_total -> WHERE id_factura = OLD.id_factura; -> END// Query OK, 0 rows affected (0,006 sec) MariaDB [AutoPartes]> DELIMITER ; MariaDB [AutoPartes]> DELETE FROM detalle_factura WHERE id_detalle_factura = 6; Query OK, 1 row affected (0,005 sec) MariaDB [AutoPartes]> select*from detalle_factura; +--------------------+------------+-------------+-------------------+-----------------+ | id_detalle_factura | id_factura | id_producto | cantidad_producto | total_productos | +--------------------+------------+-------------+-------------------+-----------------+ | 1 | 1 | 1 | 2 | 360000.00 | | 2 | 1 | 4 | 1 | 150000.00 | | 3 | 1 | 9 | 3 | 285000.00 | | 4 | 1 | 10 | 1 | 185000.00 | | 5 | 1 | 5 | 2 | 2200000.00 | +--------------------+------------+-------------+-------------------+-----------------+ 5 rows in set (0,001 sec) MariaDB [AutoPartes]> SELECT total_venta FROM factura WHERE id_factura = 1; +-------------+ | total_venta | +-------------+ | 3180000.00 | +-------------+ 1 row in set (0,001 sec) MariaDB [AutoPartes]> DELIMITER $$ MariaDB [AutoPartes]> MariaDB [AutoPartes]> CREATE TRIGGER restar_inventario_after_insert -> AFTER INSERT ON detalle_factura -> FOR EACH ROW -> BEGIN -> -- Restar la cantidad de productos vendidos del inventario -> UPDATE inventario -> SET cantidad = cantidad - NEW.cantidad_producto -> WHERE id_producto = NEW.id_producto; -> END$$ Query OK, 0 rows affected (0,010 sec) MariaDB [AutoPartes]> MariaDB [AutoPartes]> DELIMITER ; MariaDB [AutoPartes]> DELETE FROM detalle_factura -> WHERE id_factura = 1; Query OK, 5 rows affected (0,014 sec) MariaDB [AutoPartes]> select*from detalle_factura; Empty set (0,001 sec) MariaDB [AutoPartes]> select*from factura; +------------+------------+-------------+------------+-------------+ | id_factura | id_cliente | id_empleado | fecha | total_venta | +------------+------------+-------------+------------+-------------+ | 1 | 1001 | 2003 | 2025-11-08 | 0.00 | +------------+------------+-------------+------------+-------------+ 1 row in set (0,001 sec) MariaDB [AutoPartes]> DELIMITER $$ MariaDB [AutoPartes]> MariaDB [AutoPartes]> CREATE TRIGGER actualizar_inventario_after_update -> AFTER UPDATE ON detalle_factura -> FOR EACH ROW -> BEGIN -> DECLARE diferencia INT; -> -> -- Calcular la diferencia entre la nueva cantidad y la anterior -> SET diferencia = NEW.cantidad_producto - OLD.cantidad_producto; -> -> -- Actualizar inventario en base a esa diferencia -> UPDATE inventario -> SET cantidad = cantidad - diferencia -> WHERE id_producto = NEW.id_producto; -> END$$ Query OK, 0 rows affected (0,005 sec) MariaDB [AutoPartes]> MariaDB [AutoPartes]> DELIMITER ; MariaDB [AutoPartes]> DELIMITER $$ MariaDB [AutoPartes]> MariaDB [AutoPartes]> CREATE TRIGGER devolver_inventario_after_delete -> AFTER DELETE ON detalle_factura -> FOR EACH ROW -> BEGIN -> -- Sumar nuevamente los productos eliminados al inventario -> UPDATE inventario -> SET cantidad = cantidad + OLD.cantidad_producto -> WHERE id_producto = OLD.id_producto; -> END$$ Query OK, 0 rows affected (0,005 sec) MariaDB [AutoPartes]> MariaDB [AutoPartes]> DELIMITER ; MariaDB [AutoPartes]> INSERT INTO detalle_factura (id_factura, id_producto, cantidad_producto, total_productos) -> VALUES -> (1, 1, 2, 360000.00), -- 2 Filtros de aceite Bosch (180000 c/u) -> (1, 4, 1, 150000.00), -- 1 Pastilla de freno Brembo (150000) -> (1, 9, 3, 285000.00), -- 3 Aceites de motor Castrol 10W40 (95000 c/u) -> (1, 10, 1, 185000.00); -- 1 Juego de llaves combinadas Truper (185000) Query OK, 4 rows affected (0,011 sec) Records: 4 Duplicates: 0 Warnings: 0 MariaDB [AutoPartes]> select*from factura; +------------+------------+-------------+------------+-------------+ | id_factura | id_cliente | id_empleado | fecha | total_venta | +------------+------------+-------------+------------+-------------+ | 1 | 1001 | 2003 | 2025-11-08 | 1490000.00 | +------------+------------+-------------+------------+-------------+ 1 row in set (0,001 sec) MariaDB [AutoPartes]> select*from invetario; ERROR 1146 (42S02): Table 'AutoPartes.invetario' doesn't exist MariaDB [AutoPartes]> show tables; +----------------------+ | Tables_in_AutoPartes | +----------------------+ | categoria_productos | | cliente | | detalle_factura | | empleado | | factura | | inventario | | metodo_pago | | pagos | | productos | | proveedores | | roles | | usuario | +----------------------+ 12 rows in set (0,002 sec) MariaDB [AutoPartes]> select*from inventario; +-------------+----------+ | id_producto | cantidad | +-------------+----------+ | 1 | 43 | | 2 | 60 | | 3 | 30 | | 4 | 79 | | 5 | 25 | | 6 | 20 | | 7 | 15 | | 8 | 35 | | 9 | 97 | | 10 | 49 | +-------------+----------+ 10 rows in set (0,001 sec) MariaDB [AutoPartes]> select*from detalle_factura; +--------------------+------------+-------------+-------------------+-----------------+ | id_detalle_factura | id_factura | id_producto | cantidad_producto | total_productos | +--------------------+------------+-------------+-------------------+-----------------+ | 7 | 1 | 1 | 2 | 360000.00 | | 8 | 1 | 4 | 1 | 150000.00 | | 9 | 1 | 9 | 3 | 885000.00 | | 10 | 1 | 10 | 1 | 95000.00 | +--------------------+------------+-------------+-------------------+-----------------+ 4 rows in set (0,001 sec) MariaDB [AutoPartes]> DELETE FROM detalle_factura WHERE id_detalle_factura = 10; Query OK, 1 row affected (0,009 sec) MariaDB [AutoPartes]> select*from inventario; +-------------+----------+ | id_producto | cantidad | +-------------+----------+ | 1 | 43 | | 2 | 60 | | 3 | 30 | | 4 | 79 | | 5 | 25 | | 6 | 20 | | 7 | 15 | | 8 | 35 | | 9 | 97 | | 10 | 50 | +-------------+----------+ 10 rows in set (0,001 sec) MariaDB [AutoPartes]> select*from factura; +------------+------------+-------------+------------+-------------+ | id_factura | id_cliente | id_empleado | fecha | total_venta | +------------+------------+-------------+------------+-------------+ | 1 | 1001 | 2003 | 2025-11-08 | 1395000.00 | +------------+------------+-------------+------------+-------------+ 1 row in set (0,001 sec) MariaDB [AutoPartes]> INSERT INTO metodo_pago (nombre_metodo) -> VALUES -> ('Efectivo'), -> ('Tarjeta'), -> ('Transferencia'), -> ('Cheque'); Query OK, 4 rows affected (0,004 sec) Records: 4 Duplicates: 0 Warnings: 0 MariaDB [AutoPartes]> select*from metodo_pago; +----------------+---------------+ | id_metodo_pago | nombre_metodo | +----------------+---------------+ | 1 | Efectivo | | 2 | Tarjeta | | 3 | Transferencia | | 4 | Cheque | +----------------+---------------+ 4 rows in set (0,001 sec) MariaDB [AutoPartes]> INSERT INTO pagos (id_factura, id_metodo_pago, pago) -> VALUES (1, 1, TRUE); Query OK, 1 row affected (0,003 sec) MariaDB [AutoPartes]> select*from pagos; +------------+----------------+------+ | id_factura | id_metodo_pago | pago | +------------+----------------+------+ | 1 | 1 | 1 | +------------+----------------+------+ 1 row in set (0,001 sec) MariaDB [AutoPartes]> INSERT INTO factura (id_cliente, id_empleado, fecha, total_venta) -> VALUES -> (2, 3, '2025-11-01', NULL), -> (3, 4, '2025-11-02', NULL), -> (4, 1, '2025-11-03', NULL), -> (5, 2, '2025-11-04', NULL), -> (6, 5, '2025-11-05', NULL), -> (7, 1, '2025-11-06', NULL), -> (8, 4, '2025-11-07', NULL), -> (9, 2, '2025-11-08', NULL), -> (10, 3, '2025-11-09', NULL); ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`AutoPartes`.`factura`, CONSTRAINT `factura_ibfk_1` FOREIGN KEY (`id_cliente`) REFERENCES `cliente` (`documento_cliente`)) MariaDB [AutoPartes]> select*from cliente; +-------------------+-----------+-----------+------------+------------+----------------------+------------------------------+------------+-----------+ | documento_cliente | nombre1 | nombre2 | apellido1 | apellido2 | direccion | correo | telefono | genero | +-------------------+-----------+-----------+------------+------------+----------------------+------------------------------+------------+-----------+ | 1001 | Carlos | Andrés | Gómez | Pérez | Calle 10 #23-45 | carlos.gomez@example.com | 3124567890 | Masculino | | 1002 | Laura | Marcela | Rodríguez | López | Carrera 15 #8-22 | laura.rodriguez@example.com | 3109876543 | Femenino | | 1003 | Andrés | Felipe | Ramírez | Gutiérrez | Av. Siempre Viva 742 | andres.ramirez@example.com | 3012233445 | Masculino | | 1004 | Mariana | NULL | Torres | Díaz | Calle 50 #20-18 | mariana.torres@example.com | 3209988776 | Femenino | | 1005 | Julián | David | Martínez | Castro | Transversal 9 #34-12 | julian.martinez@example.com | 3135544332 | Masculino | | 1006 | Sofía | Alejandra | Morales | Vega | Carrera 25 #9-30 | sofia.morales@example.com | 3008877665 | Femenino | | 1007 | Diego | NULL | Hernández | Rojas | Calle 12 #14-56 | diego.hernandez@example.com | 3111122233 | Masculino | | 1008 | Valentina | Isabel | Suárez | Pardo | Carrera 7 #45-67 | valentina.suarez@example.com | 3144455566 | Femenino | | 1009 | Samuel | Esteban | López | Jiménez | Calle 8 #10-11 | samuel.lopez@example.com | 3156677889 | Masculino | | 1010 | Camila | Fernanda | Cárdenas | Ruiz | Carrera 40 #60-20 | camila.cardenas@example.com | 3183344556 | Femenino | +-------------------+-----------+-----------+------------+------------+----------------------+------------------------------+------------+-----------+ 10 rows in set (0,001 sec) MariaDB [AutoPartes]> select*from empleado; +--------------------+----------+------------+-----------+------------+-----------------------+------------------------------+------------+-----------+ | documento_empleado | nombre1 | nombre2 | apellido1 | apellido2 | direccion | correo | telefono | genero | +--------------------+----------+------------+-----------+------------+-----------------------+------------------------------+------------+-----------+ | 2001 | Juan | Sebastián | Pérez | Gómez | Calle 5 #12-34 | juan.perez@empresa.com | 3112233445 | Masculino | | 2002 | Ana | María | López | Rodríguez | Carrera 8 #20-10 | ana.lopez@empresa.com | 3001122334 | Femenino | | 2003 | Carlos | Alberto | Jiménez | Rojas | Av. Central #45-09 | carlos.jimenez@empresa.com | 3135566778 | Masculino | | 2004 | Paula | Andrea | Castro | Ruiz | Transversal 18 #25-36 | paula.castro@empresa.com | 3109988776 | Femenino | | 2005 | Felipe | Andrés | González | Vargas | Calle 9 #7-14 | felipe.gonzalez@empresa.com | 3124455667 | Masculino | | 2006 | María | Camila | Torres | Luna | Carrera 30 #45-50 | maria.torres@empresa.com | 3201122443 | Femenino | | 2007 | Andrés | Mauricio | Ramírez | Soto | Calle 40 #15-60 | andres.ramirez@empresa.com | 3117788990 | Masculino | | 2008 | Lucía | Isabel | Mendoza | Pardo | Carrera 12 #22-11 | lucia.mendoza@empresa.com | 3145566778 | Femenino | | 2009 | Santiago | NULL | Herrera | Morales | Av. Las Palmas #50-23 | santiago.herrera@empresa.com | 3168899001 | Masculino | | 2010 | Daniela | Fernanda | Rincón | Martínez | Calle 25 #33-12 | daniela.rincon@empresa.com | 3183344557 | Femenino | +--------------------+----------+------------+-----------+------------+-----------------------+------------------------------+------------+-----------+ 10 rows in set (0,001 sec) MariaDB [AutoPartes]> select*from factura; +------------+------------+-------------+------------+-------------+ | id_factura | id_cliente | id_empleado | fecha | total_venta | +------------+------------+-------------+------------+-------------+ | 1 | 1001 | 2003 | 2025-11-08 | 1395000.00 | +------------+------------+-------------+------------+-------------+ 1 row in set (0,001 sec) MariaDB [AutoPartes]> INSERT INTO factura (id_cliente, id_empleado, fecha, total_venta) -> VALUES -> (1002, 2003, '2025-11-01', NULL), -> (1003, 2004, '2025-11-02', NULL), -> (1004, 2001, '2025-11-03', NULL), -> (1005, 2002, '2025-11-04', NULL), -> (1006, 2005, '2025-11-05', NULL), -> (1007, 2006, '2025-11-06', NULL), -> (1008, 2007, '2025-11-07', NULL), -> (1009, 2008, '2025-11-08', NULL), -> (1010, 2009, '2025-11-09', NULL); Query OK, 9 rows affected (0,003 sec) Records: 9 Duplicates: 0 Warnings: 0 MariaDB [AutoPartes]> select*from factura; +------------+------------+-------------+------------+-------------+ | id_factura | id_cliente | id_empleado | fecha | total_venta | +------------+------------+-------------+------------+-------------+ | 1 | 1001 | 2003 | 2025-11-08 | 1395000.00 | | 11 | 1002 | 2003 | 2025-11-01 | NULL | | 12 | 1003 | 2004 | 2025-11-02 | NULL | | 13 | 1004 | 2001 | 2025-11-03 | NULL | | 14 | 1005 | 2002 | 2025-11-04 | NULL | | 15 | 1006 | 2005 | 2025-11-05 | NULL | | 16 | 1007 | 2006 | 2025-11-06 | NULL | | 17 | 1008 | 2007 | 2025-11-07 | NULL | | 18 | 1009 | 2008 | 2025-11-08 | NULL | | 19 | 1010 | 2009 | 2025-11-09 | NULL | +------------+------------+-------------+------------+-------------+ 10 rows in set (0,001 sec) MariaDB [AutoPartes]> describe factura; +-------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+----------------+ | id_factura | int(11) | NO | PRI | NULL | auto_increment | | id_cliente | int(11) | NO | MUL | NULL | | | id_empleado | int(11) | NO | MUL | NULL | | | fecha | date | NO | | NULL | | | total_venta | float(10,2) | YES | | NULL | | +-------------+-------------+------+-----+---------+----------------+ 5 rows in set (0,002 sec) MariaDB [AutoPartes]> describe detalle_factura; +--------------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------------+-------------+------+-----+---------+----------------+ | id_detalle_factura | int(11) | NO | PRI | NULL | auto_increment | | id_factura | int(11) | NO | MUL | NULL | | | id_producto | int(11) | NO | MUL | NULL | | | cantidad_producto | int(11) | NO | | NULL | | | total_productos | float(10,2) | NO | | NULL | | +--------------------+-------------+------+-----+---------+----------------+ 5 rows in set (0,002 sec) MariaDB [AutoPartes]> select*from productos; +-------------+--------------+-----------+-------------+-----------------------------------+--------------------------------------------------------------------------------------------------+ | id_producto | id_categoria | precio | valor_venta | nombre_producto | descripcion | +-------------+--------------+-----------+-------------+-----------------------------------+--------------------------------------------------------------------------------------------------+ | 1 | 1 | 150000.00 | 180000.00 | Filtro de aceite Bosch | Filtro de aceite compatible con motores de gasolina y diésel, mejora la lubricación del motor. | | 2 | 1 | 320000.00 | 380000.00 | Bujías NGK Iridium | Juego de 4 bujías de iridio para alto rendimiento y durabilidad. | | 3 | 2 | 280000.00 | 340000.00 | Amortiguador trasero Monroe | Amortiguador hidráulico para vehículos de gama media, mejora la estabilidad y confort. | | 4 | 3 | 120000.00 | 150000.00 | Pastillas de freno Brembo | Pastillas de freno de cerámica para autos compactos, alta durabilidad y frenado eficiente. | | 5 | 4 | 950000.00 | 1100000.00 | Embrague LUK completo | Kit de embrague con prensa, disco y balinera, ideal para transmisión manual. | | 6 | 5 | 480000.00 | 530000.00 | Alternador Bosch 12V 90A | Alternador de alta eficiencia para vehículos de gasolina, con garantía de 1 año. | | 7 | 6 | 350000.00 | 400000.00 | Espejo retrovisor derecho | Espejo lateral con ajuste manual, carcasa negra resistente a impactos. | | 8 | 7 | 420000.00 | 480000.00 | Radiador de aluminio | Radiador de refrigeración de alto rendimiento para vehículos de 4 cilindros. | | 9 | 8 | 250000.00 | 295000.00 | Silenciador universal | Silenciador trasero de acero inoxidable con baja restricción de flujo. | | 10 | 9 | 80000.00 | 95000.00 | Aceite de motor Castrol 10W40 | Aceite semisintético de alta protección para motores a gasolina. | | 11 | 10 | 150000.00 | 185000.00 | Juego de llaves combinadas Truper | Set de 12 llaves de acero al cromo vanadio, ideal para talleres mecánicos. | +-------------+--------------+-----------+-------------+-----------------------------------+--------------------------------------------------------------------------------------------------+ 11 rows in set (0,001 sec) MariaDB [AutoPartes]> -- FACTURA 11 - Cliente 1002 MariaDB [AutoPartes]> INSERT INTO detalle_factura (id_factura, id_producto, cantidad_producto, total_productos) -> VALUES -> (11, 1, 2, 360000.00), -- 2 Filtros Bosch -> (11, 4, 1, 150000.00); -- 1 Pastilla Brembo Query OK, 2 rows affected (0,009 sec) Records: 2 Duplicates: 0 Warnings: 0 MariaDB [AutoPartes]> MariaDB [AutoPartes]> -- FACTURA 12 - Cliente 1003 MariaDB [AutoPartes]> INSERT INTO detalle_factura (id_factura, id_producto, cantidad_producto, total_productos) -> VALUES -> (12, 3, 1, 340000.00), -- Amortiguador Monroe -> (12, 10, 2, 190000.00); -- 2 Aceites Castrol Query OK, 2 rows affected (0,004 sec) Records: 2 Duplicates: 0 Warnings: 0 MariaDB [AutoPartes]> MariaDB [AutoPartes]> -- FACTURA 13 - Cliente 1004 MariaDB [AutoPartes]> INSERT INTO detalle_factura (id_factura, id_producto, cantidad_producto, total_productos) -> VALUES -> (13, 2, 1, 380000.00), -- Bujías NGK Iridium -> (13, 7, 1, 400000.00); -- Espejo retrovisor derecho Query OK, 2 rows affected (0,003 sec) Records: 2 Duplicates: 0 Warnings: 0 MariaDB [AutoPartes]> MariaDB [AutoPartes]> -- FACTURA 14 - Cliente 1005 MariaDB [AutoPartes]> INSERT INTO detalle_factura (id_factura, id_producto, cantidad_producto, total_productos) -> VALUES -> (14, 6, 1, 530000.00), -- Alternador Bosch -> (14, 8, 1, 480000.00); -- Radiador de aluminio Query OK, 2 rows affected (0,003 sec) Records: 2 Duplicates: 0 Warnings: 0 MariaDB [AutoPartes]> MariaDB [AutoPartes]> -- FACTURA 15 - Cliente 1006 MariaDB [AutoPartes]> INSERT INTO detalle_factura (id_factura, id_producto, cantidad_producto, total_productos) -> VALUES -> (15, 9, 1, 295000.00), -- Silenciador universal -> (15, 10, 3, 285000.00); -- 3 Aceites Castrol Query OK, 2 rows affected (0,002 sec) Records: 2 Duplicates: 0 Warnings: 0 MariaDB [AutoPartes]> MariaDB [AutoPartes]> -- FACTURA 16 - Cliente 1007 MariaDB [AutoPartes]> INSERT INTO detalle_factura (id_factura, id_producto, cantidad_producto, total_productos) -> VALUES -> (16, 11, 1, 185000.00), -- Juego de llaves Truper -> (16, 5, 1, 1100000.00); -- Embrague LUK completo Query OK, 2 rows affected (0,003 sec) Records: 2 Duplicates: 0 Warnings: 0 MariaDB [AutoPartes]> MariaDB [AutoPartes]> -- FACTURA 17 - Cliente 1008 MariaDB [AutoPartes]> INSERT INTO detalle_factura (id_factura, id_producto, cantidad_producto, total_productos) -> VALUES -> (17, 2, 2, 760000.00), -- 2 Juegos de bujías -> (17, 4, 2, 300000.00); -- 2 Pastillas Brembo Query OK, 2 rows affected (0,002 sec) Records: 2 Duplicates: 0 Warnings: 0 MariaDB [AutoPartes]> MariaDB [AutoPartes]> -- FACTURA 18 - Cliente 1009 MariaDB [AutoPartes]> INSERT INTO detalle_factura (id_factura, id_producto, cantidad_producto, total_productos) -> VALUES -> (18, 3, 2, 680000.00), -- 2 Amortiguadores Monroe -> (18, 6, 1, 530000.00); -- 1 Alternador Bosch Query OK, 2 rows affected (0,002 sec) Records: 2 Duplicates: 0 Warnings: 0 MariaDB [AutoPartes]> MariaDB [AutoPartes]> -- FACTURA 19 - Cliente 1010 MariaDB [AutoPartes]> INSERT INTO detalle_factura (id_factura, id_producto, cantidad_producto, total_productos) -> VALUES -> (19, 8, 1, 480000.00), -- Radiador de aluminio -> (19, 1, 3, 540000.00); -- 3 Filtros Bosch Query OK, 2 rows affected (0,002 sec) Records: 2 Duplicates: 0 Warnings: 0 MariaDB [AutoPartes]> select*from inventario; +-------------+----------+ | id_producto | cantidad | +-------------+----------+ | 1 | 38 | | 2 | 57 | | 3 | 27 | | 4 | 76 | | 5 | 24 | | 6 | 18 | | 7 | 14 | | 8 | 33 | | 9 | 96 | | 10 | 45 | +-------------+----------+ 10 rows in set (0,001 sec) MariaDB [AutoPartes]> select*from detalle_factura; +--------------------+------------+-------------+-------------------+-----------------+ | id_detalle_factura | id_factura | id_producto | cantidad_producto | total_productos | +--------------------+------------+-------------+-------------------+-----------------+ | 7 | 1 | 1 | 2 | 360000.00 | | 8 | 1 | 4 | 1 | 150000.00 | | 9 | 1 | 9 | 3 | 885000.00 | | 11 | 11 | 1 | 2 | 360000.00 | | 12 | 11 | 4 | 1 | 150000.00 | | 13 | 12 | 3 | 1 | 340000.00 | | 14 | 12 | 10 | 2 | 190000.00 | | 15 | 13 | 2 | 1 | 380000.00 | | 16 | 13 | 7 | 1 | 400000.00 | | 17 | 14 | 6 | 1 | 530000.00 | | 18 | 14 | 8 | 1 | 480000.00 | | 19 | 15 | 9 | 1 | 295000.00 | | 20 | 15 | 10 | 3 | 285000.00 | | 21 | 16 | 11 | 1 | 185000.00 | | 22 | 16 | 5 | 1 | 1100000.00 | | 23 | 17 | 2 | 2 | 760000.00 | | 24 | 17 | 4 | 2 | 300000.00 | | 25 | 18 | 3 | 2 | 680000.00 | | 26 | 18 | 6 | 1 | 530000.00 | | 27 | 19 | 8 | 1 | 480000.00 | | 28 | 19 | 1 | 3 | 540000.00 | +--------------------+------------+-------------+-------------------+-----------------+ 21 rows in set (0,001 sec) MariaDB [AutoPartes]> select*from factura; +------------+------------+-------------+------------+-------------+ | id_factura | id_cliente | id_empleado | fecha | total_venta | +------------+------------+-------------+------------+-------------+ | 1 | 1001 | 2003 | 2025-11-08 | 1395000.00 | | 11 | 1002 | 2003 | 2025-11-01 | 510000.00 | | 12 | 1003 | 2004 | 2025-11-02 | 530000.00 | | 13 | 1004 | 2001 | 2025-11-03 | 780000.00 | | 14 | 1005 | 2002 | 2025-11-04 | 1010000.00 | | 15 | 1006 | 2005 | 2025-11-05 | 580000.00 | | 16 | 1007 | 2006 | 2025-11-06 | 1285000.00 | | 17 | 1008 | 2007 | 2025-11-07 | 1060000.00 | | 18 | 1009 | 2008 | 2025-11-08 | 1210000.00 | | 19 | 1010 | 2009 | 2025-11-09 | 1020000.00 | +------------+------------+-------------+------------+-------------+ 10 rows in set (0,001 sec) MariaDB [AutoPartes]> notee;