Microsoft Windows [Versión 10.0.26100.4061] (c) Microsoft Corporation. Todos los derechos reservados. C:\Users\Yeison>cd/xampp/mysql/bin C:\xampp\mysql\bin>mysql -uroot -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 31 Server version: 10.4.32-MariaDB mariadb.org binary distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> source C:\xampp\inventario_XYZ.sql Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 1 row affected (0.001 sec) Database changed Query OK, 0 rows affected (0.001 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.025 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.001 sec) Query OK, 0 rows affected (0.001 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.010 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.001 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.022 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.001 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.029 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.001 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.023 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.001 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.029 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.001 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.021 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.001 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.021 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.001 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.011 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.001 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.030 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.001 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.019 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.001 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.012 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.003 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.011 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.001 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.012 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.001 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.021 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.001 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) MariaDB [nventario_XYZ]> show tables; +-------------------------+ | Tables_in_nventario_xyz | +-------------------------+ | alertas_inventario | | clientes | | compras | | detalles_compra | | detalles_devolucion | | detalles_venta | | devoluciones | | historial_precios | | informe_ventas | | inventario_historico | | pagos | | productos | | proveedores | | usuarios | | ventas | +-------------------------+ 15 rows in set (0.001 sec) MariaDB [nventario_XYZ]> describe alertas_inventario; +--------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+-------------+------+-----+---------+----------------+ | id_alerta | int(11) | NO | PRI | NULL | auto_increment | | id_producto | int(11) | YES | MUL | NULL | | | tipo_alerta | varchar(50) | YES | | NULL | | | fecha_alerta | date | YES | | NULL | | | descripcion | text | YES | | NULL | | +--------------+-------------+------+-----+---------+----------------+ 5 rows in set (0.008 sec) MariaDB [nventario_XYZ]> describe clientes; +----------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+--------------+------+-----+---------+----------------+ | id_cliente | int(11) | NO | PRI | NULL | auto_increment | | nombre | varchar(100) | YES | | NULL | | | direccion | varchar(150) | YES | | NULL | | | telefono | varchar(15) | YES | | NULL | | | email | varchar(100) | YES | | NULL | | | fecha_registro | date | YES | | NULL | | +----------------+--------------+------+-----+---------+----------------+ 6 rows in set (0.010 sec) MariaDB [nventario_XYZ]> describe compras; +--------------+---------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+---------------+------+-----+---------+----------------+ | id_compra | int(11) | NO | PRI | NULL | auto_increment | | id_proveedor | int(11) | YES | MUL | NULL | | | fecha_compra | date | YES | | NULL | | | total_compra | decimal(10,2) | YES | | NULL | | | método_pago | varchar(50) | YES | | NULL | | +--------------+---------------+------+-----+---------+----------------+ 5 rows in set (0.008 sec) MariaDB [nventario_XYZ]> describe detalles_compra; +-------------------+---------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------------+---------------+------+-----+---------+----------------+ | id_detalle_compra | int(11) | NO | PRI | NULL | auto_increment | | id_compra | int(11) | YES | MUL | NULL | | | id_producto | int(11) | YES | MUL | NULL | | | cantidad | int(11) | YES | | NULL | | | precio_unitario | decimal(10,2) | YES | | NULL | | | subtotal | decimal(10,2) | YES | | NULL | | +-------------------+---------------+------+-----+---------+----------------+ 6 rows in set (0.009 sec) MariaDB [nventario_XYZ]> describe detalles_devolucion; +-----------------------+---------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------------------+---------------+------+-----+---------+----------------+ | id_detalle_devolucion | int(11) | NO | PRI | NULL | auto_increment | | id_devolucion | int(11) | YES | MUL | NULL | | | id_producto | int(11) | YES | MUL | NULL | | | cantidad | int(11) | YES | | NULL | | | precio_unitario | decimal(10,2) | YES | | NULL | | | subtotal | decimal(10,2) | YES | | NULL | | +-----------------------+---------------+------+-----+---------+----------------+ 6 rows in set (0.009 sec) MariaDB [nventario_XYZ]> describe detalles_venta; +------------------+---------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------------+---------------+------+-----+---------+----------------+ | id_detalle_venta | int(11) | NO | PRI | NULL | auto_increment | | id_venta | int(11) | YES | MUL | NULL | | | id_producto | int(11) | YES | MUL | NULL | | | cantidad | int(11) | YES | | NULL | | | precio_unitario | decimal(10,2) | YES | | NULL | | | subtotal | decimal(10,2) | YES | | NULL | | +------------------+---------------+------+-----+---------+----------------+ 6 rows in set (0.009 sec) MariaDB [nventario_XYZ]> show tables; +-------------------------+ | Tables_in_nventario_xyz | +-------------------------+ | alertas_inventario | | clientes | | compras | | detalles_compra | | detalles_devolucion | | detalles_venta | | devoluciones | | historial_precios | | informe_ventas | | inventario_historico | | pagos | | productos | | proveedores | | usuarios | | ventas | +-------------------------+ 15 rows in set (0.001 sec) MariaDB [nventario_XYZ]> describe devoluciones; +------------------+---------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------------+---------------+------+-----+---------+----------------+ | id_devolucion | int(11) | NO | PRI | NULL | auto_increment | | id_venta | int(11) | YES | MUL | NULL | | | fecha_devolucion | date | YES | | NULL | | | motivo | text | YES | | NULL | | | total_devolucion | decimal(10,2) | YES | | NULL | | +------------------+---------------+------+-----+---------+----------------+ 5 rows in set (0.009 sec) MariaDB [nventario_XYZ]> historial_precios; 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 'historial_precios' at line 1 MariaDB [nventario_XYZ]> describe historial_precios; +---------------------+---------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------------+---------------+------+-----+---------+----------------+ | id_historial_precio | int(11) | NO | PRI | NULL | auto_increment | | id_producto | int(11) | YES | MUL | NULL | | | precio_antiguo | decimal(10,2) | YES | | NULL | | | precio_nuevo | decimal(10,2) | YES | | NULL | | | fecha_cambio | date | YES | | NULL | | +---------------------+---------------+------+-----+---------+----------------+ 5 rows in set (0.011 sec) MariaDB [nventario_XYZ]> describe informe_ventas; +--------------------+---------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------------+---------------+------+-----+---------+----------------+ | id_informe | int(11) | NO | PRI | NULL | auto_increment | | fecha_inicio | date | YES | | NULL | | | fecha_fin | date | YES | | NULL | | | total_ventas | decimal(10,2) | YES | | NULL | | | productos_vendidos | int(11) | YES | | NULL | | | reporte_completo | text | YES | | NULL | | +--------------------+---------------+------+-----+---------+----------------+ 6 rows in set (0.010 sec) MariaDB [nventario_XYZ]> show tables; +-------------------------+ | Tables_in_nventario_xyz | +-------------------------+ | alertas_inventario | | clientes | | compras | | detalles_compra | | detalles_devolucion | | detalles_venta | | devoluciones | | historial_precios | | informe_ventas | | inventario_historico | | pagos | | productos | | proveedores | | usuarios | | ventas | +-------------------------+ 15 rows in set (0.001 sec) MariaDB [nventario_XYZ]> describe inventario_historico; +-------------------------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------------------+---------+------+-----+---------+----------------+ | id_inventario_historico | int(11) | NO | PRI | NULL | auto_increment | | id_producto | int(11) | YES | MUL | NULL | | | cantidad_entrante | int(11) | YES | | NULL | | | cantidad_salida | int(11) | YES | | NULL | | | stock_final | int(11) | YES | | NULL | | | fecha_actualizacion | date | YES | | NULL | | +-------------------------+---------+------+-----+---------+----------------+ 6 rows in set (0.011 sec) MariaDB [nventario_XYZ]> describe pagos; +------------+---------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+---------------+------+-----+---------+----------------+ | id_pago | int(11) | NO | PRI | NULL | auto_increment | | id_cliente | int(11) | YES | MUL | NULL | | | id_compra | int(11) | YES | MUL | NULL | | | fecha_pago | date | YES | | NULL | | | monto_pago | decimal(10,2) | YES | | NULL | | | tipo_pago | varchar(50) | YES | | NULL | | +------------+---------------+------+-----+---------+----------------+ 6 rows in set (0.010 sec) MariaDB [nventario_XYZ]> show tables; +-------------------------+ | Tables_in_nventario_xyz | +-------------------------+ | alertas_inventario | | clientes | | compras | | detalles_compra | | detalles_devolucion | | detalles_venta | | devoluciones | | historial_precios | | informe_ventas | | inventario_historico | | pagos | | productos | | proveedores | | usuarios | | ventas | +-------------------------+ 15 rows in set (0.000 sec) MariaDB [nventario_XYZ]> describe productos; +-----------------+---------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------------+---------------+------+-----+---------+----------------+ | id_producto | int(11) | NO | PRI | NULL | auto_increment | | nombre_producto | varchar(100) | YES | | NULL | | | descripcion | text | YES | | NULL | | | precio_unitario | decimal(10,2) | YES | | NULL | | | stock_actual | int(11) | YES | | NULL | | | fecha_entrada | date | YES | | NULL | | +-----------------+---------------+------+-----+---------+----------------+ 6 rows in set (0.012 sec) MariaDB [nventario_XYZ]> describe proveedores; +------------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------------+--------------+------+-----+---------+----------------+ | id_proveedor | int(11) | NO | PRI | NULL | auto_increment | | nombre_proveedor | varchar(100) | YES | | NULL | | | contacto | varchar(100) | YES | | NULL | | | telefono | varchar(15) | YES | | NULL | | | email | varchar(100) | YES | | NULL | | | direccion | varchar(150) | YES | | NULL | | +------------------+--------------+------+-----+---------+----------------+ 6 rows in set (0.010 sec) MariaDB [nventario_XYZ]> describe usuarios; +----------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+--------------+------+-----+---------+----------------+ | id_usuario | int(11) | NO | PRI | NULL | auto_increment | | nombre_usuario | varchar(100) | YES | | NULL | | | rol | varchar(50) | YES | | NULL | | | email | varchar(100) | YES | | NULL | | | password | varchar(255) | YES | | NULL | | | fecha_registro | date | YES | | NULL | | +----------------+--------------+------+-----+---------+----------------+ 6 rows in set (0.009 sec) MariaDB [nventario_XYZ]> describe ventas; +-------------+---------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+---------------+------+-----+---------+----------------+ | id_venta | int(11) | NO | PRI | NULL | auto_increment | | id_cliente | int(11) | YES | MUL | NULL | | | fecha_venta | date | YES | | NULL | | | total_venta | decimal(10,2) | YES | | NULL | | | método_pago | varchar(50) | YES | | NULL | | +-------------+---------------+------+-----+---------+----------------+ 5 rows in set (0.013 sec) MariaDB [nventario_XYZ]> select * from ventas; Empty set (0.000 sec) MariaDB [nventario_XYZ]> INSERT INTO productos (nombre_producto, descripcion, precio_unitario, stock_actual, fecha_entrada) VALUES -> ('Laptop HP EliteBook', 'Laptop 14", 16GB RAM, 512GB SSD', 1200.00, 15, '2024-01-10'), -> ('Teclado Mecánico RGB', 'Teclado gaming con retroiluminación', 85.50, 30, '2024-02-15'), -> ('Mouse Inalámbrico', 'Mouse ergonómico, 1600DPI', 25.99, 50, '2024-03-20'), -> ('Monitor 24" Samsung', 'Full HD, 75Hz, HDMI', 180.00, 20, '2024-01-25'), -> ('Disco Duro 1TB', 'HDD SATA 7200RPM', 45.90, 40, '2024-04-05'), -> ('Impresora Epson', 'Multifuncional a color', 150.75, 10, '2024-02-28'), -> ('Router WiFi 6', 'Doble banda, 3000Mbps', 120.00, 25, '2024-03-10'), -> ('Webcam 1080p', 'Con micrófono integrado', 35.00, 60, '2024-05-01'), -> ('Altavoces Bluetooth', 'Potencia 20W, bass boost', 55.30, 35, '2024-04-15'), -> ('Tarjeta SD 128GB', 'Clase 10, velocidad alta', 18.99, 100, '2024-05-20'); Query OK, 10 rows affected (0.009 sec) Records: 10 Duplicates: 0 Warnings: 0 MariaDB [nventario_XYZ]> select * from productos; +-------------+----------------------+-------------------------------------+-----------------+--------------+---------------+ | id_producto | nombre_producto | descripcion | precio_unitario | stock_actual | fecha_entrada | +-------------+----------------------+-------------------------------------+-----------------+--------------+---------------+ | 1 | Laptop HP EliteBook | Laptop 14", 16GB RAM, 512GB SSD | 1200.00 | 15 | 2024-01-10 | | 2 | Teclado Mecánico RGB | Teclado gaming con retroiluminación | 85.50 | 30 | 2024-02-15 | | 3 | Mouse Inalámbrico | Mouse ergonómico, 1600DPI | 25.99 | 50 | 2024-03-20 | | 4 | Monitor 24" Samsung | Full HD, 75Hz, HDMI | 180.00 | 20 | 2024-01-25 | | 5 | Disco Duro 1TB | HDD SATA 7200RPM | 45.90 | 40 | 2024-04-05 | | 6 | Impresora Epson | Multifuncional a color | 150.75 | 10 | 2024-02-28 | | 7 | Router WiFi 6 | Doble banda, 3000Mbps | 120.00 | 25 | 2024-03-10 | | 8 | Webcam 1080p | Con micrófono integrado | 35.00 | 60 | 2024-05-01 | | 9 | Altavoces Bluetooth | Potencia 20W, bass boost | 55.30 | 35 | 2024-04-15 | | 10 | Tarjeta SD 128GB | Clase 10, velocidad alta | 18.99 | 100 | 2024-05-20 | +-------------+----------------------+-------------------------------------+-----------------+--------------+---------------+ 10 rows in set (0.000 sec) MariaDB [nventario_XYZ]> INSERT INTO proveedores (nombre_proveedor, contacto, telefono, email, direccion) VALUES -> ('TecnoSuministros S.A.', 'Carlos Méndez', '+502 12345678', 'carlos@tecnosum.com', 'Av. Tec 123, Zona 1'), -> ('ElectroParts Ltda.', 'María López', '+502 87654321', 'mlopez@electroparts.com', 'Calle 5-67, Zona 12'), -> ('GadgetWorld', 'Juan Pérez', '+502 55556666', 'jperez@gadgetworld.com', 'Diagonal 6, Zona 10'), -> ('InnovaTec', 'Ana Ramírez', '+502 33334444', 'aramirez@innova.com', '5ta calle 8-90, Zona 4'), -> ('DigitalHub', 'Luis García', '+502 22223333', 'lgarcia@digitalhub.com', '12 Av. 3-45, Zona 9'), -> ('CompuGlobal', 'Sofía Martínez', '+502 77778888', 'smartinez@compuglobal.com', '7ma Av. 10-20, Zona 15'), -> ('TechSolutions', 'Pedro Gómez', '+502 99990000', 'pgomez@techsolutions.com', '9na calle 1-23, Zona 5'), -> ('ElectroNorte', 'Lucía Hernández', '+502 44445555', 'lhernandez@electronorte.com', '8va Av. 4-56, Zona 3'), -> ('PC Express', 'Roberto Díaz', '+502 66667777', 'rdiaz@pcexpress.com', '11 Av. 7-89, Zona 7'), -> ('MegaTronics', 'Elena Castro', '+502 88889999', 'ecastro@megatronics.com', '6ta calle 12-34, Zona 2'); Query OK, 10 rows affected (0.006 sec) Records: 10 Duplicates: 0 Warnings: 0 MariaDB [nventario_XYZ]> INSERT INTO clientes (nombre, direccion, telefono, email, fecha_registro) VALUES -> ('Empresa XYZ S.A.', 'Av. Reforma 10-50, Zona 9', '+502 11112222', 'contacto@xyz.com', '2023-11-01'), -> ('Tienda TechNow', '5ta Av. 6-78, Zona 1', '+502 33334444', 'ventas@technow.com', '2023-12-15'), -> ('Juan Morales', 'Calle 7-89, Zona 4', '+502 55556666', 'j.morales@gmail.com', '2024-01-20'), -> ('María González', '12 Av. 3-45, Zona 10', '+502 77778888', 'maria.g@outlook.com', '2024-02-05'), -> ('Oficina Contable ALFA', 'Diagonal 2, Zona 5', '+502 99990000', 'contabilidad@alfa.com', '2024-03-10'), -> ('Luis Ramírez', '9na calle 1-23, Zona 7', '+502 22223333', 'luis.ramirez@yahoo.com', '2024-04-15'), -> ('Escuela TecnoKids', '8va Av. 4-56, Zona 3', '+502 44445555', 'info@tecnokids.edu', '2024-05-20'), -> ('Café Internet NetZone', '6ta calle 12-34, Zona 2', '+502 66667777', 'netzone@contacto.com', '2024-06-01'), -> ('Carlos Vásquez', '11 Av. 7-89, Zona 11', '+502 88889999', 'c.vasquez@gmail.com', '2024-06-10'), -> ('Tienda GamerPro', '7ma Av. 10-20, Zona 15', '+502 00001111', 'ventas@gamerpro.com', '2024-06-25'); Query OK, 10 rows affected (0.006 sec) Records: 10 Duplicates: 0 Warnings: 0 MariaDB [nventario_XYZ]> select * from clientes;; +------------+-----------------------+---------------------------+---------------+------------------------+----------------+ | id_cliente | nombre | direccion | telefono | email | fecha_registro | +------------+-----------------------+---------------------------+---------------+------------------------+----------------+ | 1 | Empresa XYZ S.A. | Av. Reforma 10-50, Zona 9 | +502 11112222 | contacto@xyz.com | 2023-11-01 | | 2 | Tienda TechNow | 5ta Av. 6-78, Zona 1 | +502 33334444 | ventas@technow.com | 2023-12-15 | | 3 | Juan Morales | Calle 7-89, Zona 4 | +502 55556666 | j.morales@gmail.com | 2024-01-20 | | 4 | María González | 12 Av. 3-45, Zona 10 | +502 77778888 | maria.g@outlook.com | 2024-02-05 | | 5 | Oficina Contable ALFA | Diagonal 2, Zona 5 | +502 99990000 | contabilidad@alfa.com | 2024-03-10 | | 6 | Luis Ramírez | 9na calle 1-23, Zona 7 | +502 22223333 | luis.ramirez@yahoo.com | 2024-04-15 | | 7 | Escuela TecnoKids | 8va Av. 4-56, Zona 3 | +502 44445555 | info@tecnokids.edu | 2024-05-20 | | 8 | Café Internet NetZone | 6ta calle 12-34, Zona 2 | +502 66667777 | netzone@contacto.com | 2024-06-01 | | 9 | Carlos Vásquez | 11 Av. 7-89, Zona 11 | +502 88889999 | c.vasquez@gmail.com | 2024-06-10 | | 10 | Tienda GamerPro | 7ma Av. 10-20, Zona 15 | +502 00001111 | ventas@gamerpro.com | 2024-06-25 | +------------+-----------------------+---------------------------+---------------+------------------------+----------------+ 10 rows in set (0.001 sec) ERROR: No query specified MariaDB [nventario_XYZ]> INSERT INTO compras (id_proveedor, fecha_compra, total_compra, método_pago) VALUES -> (1, '2024-01-15', 2400.00, 'Transferencia'), -> (2, '2024-02-20', 855.00, 'Efectivo'), -> (3, '2024-03-25', 1299.50, 'Tarjeta'), -> (4, '2024-04-10', 900.00, 'Transferencia'), -> (5, '2024-05-05', 459.00, 'Efectivo'), -> (6, '2024-06-10', 1507.50, 'Tarjeta'), -> (7, '2024-01-30', 600.00, 'Transferencia'), -> (8, '2024-02-28', 350.00, 'Efectivo'), -> (9, '2024-03-15', 553.00, 'Tarjeta'), -> (10, '2024-04-20', 189.90, 'Transferencia'); Query OK, 10 rows affected (0.011 sec) Records: 10 Duplicates: 0 Warnings: 0 MariaDB [nventario_XYZ]> INSERT INTO detalles_compra (id_compra, id_producto, cantidad, precio_unitario, subtotal) VALUES -> (1, 1, 2, 1200.00, 2400.00), -> (2, 2, 10, 85.50, 855.00), -> (3, 3, 50, 25.99, 1299.50), -> (4, 4, 5, 180.00, 900.00), -> (5, 5, 10, 45.90, 459.00), -> (6, 6, 10, 150.75, 1507.50), -> (7, 7, 5, 120.00, 600.00), -> (8, 8, 10, 35.00, 350.00), -> (9, 9, 10, 55.30, 553.00), -> (10, 10, 10, 18.99, 189.90); Query OK, 10 rows affected (0.005 sec) Records: 10 Duplicates: 0 Warnings: 0 MariaDB [nventario_XYZ]> INSERT INTO ventas (id_cliente, fecha_venta, total_venta, método_pago) VALUES -> (1, '2024-01-20', 2400.00, 'Transferencia'), -> (2, '2024-02-25', 855.00, 'Efectivo'), -> (3, '2024-03-30', 1299.50, 'Tarjeta'), -> (4, '2024-04-15', 900.00, 'Transferencia'), -> (5, '2024-05-10', 459.00, 'Efectivo'), -> (6, '2024-06-15', 1507.50, 'Tarjeta'), -> (7, '2024-01-05', 600.00, 'Transferencia'), -> (8, '2024-02-10', 350.00, 'Efectivo'), -> (9, '2024-03-20', 553.00, 'Tarjeta'), -> (10, '2024-04-25', 189.90, 'Transferencia'); Query OK, 10 rows affected (0.003 sec) Records: 10 Duplicates: 0 Warnings: 0 MariaDB [nventario_XYZ]> INSERT INTO detalles_venta (id_venta, id_producto, cantidad, precio_unitario, subtotal) VALUES -> (1, 1, 2, 1200.00, 2400.00), -> (2, 2, 10, 85.50, 855.00), -> (3, 3, 50, 25.99, 1299.50), -> (4, 4, 5, 180.00, 900.00), -> (5, 5, 10, 45.90, 459.00), -> (6, 6, 10, 150.75, 1507.50), -> (7, 7, 5, 120.00, 600.00), -> (8, 8, 10, 35.00, 350.00), -> (9, 9, 10, 55.30, 553.00), -> (10, 10, 10, 18.99, 189.90); Query OK, 10 rows affected (0.004 sec) Records: 10 Duplicates: 0 Warnings: 0 MariaDB [nventario_XYZ]> INSERT INTO devoluciones (id_venta, fecha_devolucion, motivo, total_devolucion) VALUES -> (1, '2024-01-25', 'Producto defectuoso', 1200.00), -> (2, '2024-03-01', 'Cambio de modelo', 85.50), -> (3, '2024-04-05', 'No era lo esperado', 25.99), -> (4, '2024-05-10', 'Error en pedido', 180.00), -> (5, '2024-06-15', 'Articulo dañado', 45.90), -> (6, '2024-01-10', 'Cancelación', 150.75), -> (7, '2024-02-15', 'Sin stock alternativo', 120.00), -> (8, '2024-03-20', 'Devolución voluntaria', 35.00), -> (9, '2024-04-25', 'Producto incorrecto', 55.30), -> (10, '2024-05-30', 'Garantía', 18.99); Query OK, 10 rows affected (0.004 sec) Records: 10 Duplicates: 0 Warnings: 0 MariaDB [nventario_XYZ]> INSERT INTO detalles_devolucion (id_devolucion, id_producto, cantidad, precio_unitario, subtotal) VALUES -> (1, 1, 1, 1200.00, 1200.00), -> (2, 2, 1, 85.50, 85.50), -> (3, 3, 1, 25.99, 25.99), -> (4, 4, 1, 180.00, 180.00), -> (5, 5, 1, 45.90, 45.90), -> (6, 6, 1, 150.75, 150.75), -> (7, 7, 1, 120.00, 120.00), -> (8, 8, 1, 35.00, 35.00), -> (9, 9, 1, 55.30, 55.30), -> (10, 10, 1, 18.99, 18.99); Query OK, 10 rows affected (0.005 sec) Records: 10 Duplicates: 0 Warnings: 0 MariaDB [nventario_XYZ]> INSERT INTO historial_precios (id_producto, precio_antiguo, precio_nuevo, fecha_cambio) VALUES -> (1, 1100.00, 1200.00, '2024-01-05'), -> (2, 80.00, 85.50, '2024-02-10'), -> (3, 20.00, 25.99, '2024-03-15'), -> (4, 170.00, 180.00, '2024-04-20'), -> (5, 40.00, 45.90, '2024-05-25'), -> (6, 140.00, 150.75, '2024-06-30'), -> (7, 110.00, 120.00, '2024-01-10'), -> (8, 30.00, 35.00, '2024-02-15'), -> (9, 50.00, 55.30, '2024-03-20'), -> (10, 15.00, 18.99, '2024-04-25'); Query OK, 10 rows affected (0.005 sec) Records: 10 Duplicates: 0 Warnings: 0 MariaDB [nventario_XYZ]> INSERT INTO inventario_historico (id_producto, cantidad_entrante, cantidad_salida, stock_final, fecha_actualizacion) VALUES -> (1, 20, 5, 15, '2024-01-10'), -> (2, 40, 10, 30, '2024-02-15'), -> (3, 70, 20, 50, '2024-03-20'), -> (4, 25, 5, 20, '2024-01-25'), -> (5, 50, 10, 40, '2024-04-05'), -> (6, 15, 5, 10, '2024-02-28'), -> (7, 30, 5, 25, '2024-03-10'), -> (8, 70, 10, 60, '2024-05-01'), -> (9, 45, 10, 35, '2024-04-15'), -> (10, 110, 10, 100, '2024-05-20'); Query OK, 10 rows affected (0.003 sec) Records: 10 Duplicates: 0 Warnings: 0 MariaDB [nventario_XYZ]> INSERT INTO alertas_inventario (id_producto, tipo_alerta, fecha_alerta, descripcion) VALUES -> (1, 'Stock bajo', '2024-01-20', 'Quedan solo 5 unidades de Laptop HP EliteBook'), -> (2, 'Stock crítico', '2024-02-25', 'Quedan solo 2 unidades de Teclado Mecánico RGB'), -> (3, 'Reorden', '2024-03-30', 'Mouse Inalámbrico por debajo de nivel mínimo'), -> (4, 'Stock bajo', '2024-04-15', 'Quedan solo 3 unidades de Monitor 24" Samsung'), -> (5, 'Stock normal', '2024-05-10', 'Disco Duro 1TB con stock suficiente'), -> (6, 'Stock crítico', '2024-06-15', 'Queda 1 unidad de Impresora Epson'), -> (7, 'Reorden', '2024-01-05', 'Router WiFi 6 por debajo de nivel mínimo'), -> (8, 'Stock bajo', '2024-02-10', 'Quedan solo 4 unidades de Webcam 1080p'), -> (9, 'Stock normal', '2024-03-20', 'Altavoces Bluetooth con stock suficiente'), -> (10, 'Stock alto', '2024-04-25', 'Tarjeta SD 128GB con exceso de inventario'); Query OK, 10 rows affected (0.009 sec) Records: 10 Duplicates: 0 Warnings: 0 MariaDB [nventario_XYZ]> INSERT INTO pagos (id_cliente, id_compra, fecha_pago, monto_pago, tipo_pago) VALUES -> (1, 1, '2024-01-21', 2400.00, 'Transferencia'), -> (2, 2, '2024-02-26', 855.00, 'Efectivo'), -> (3, 3, '2024-03-31', 1299.50, 'Tarjeta'), -> (4, 4, '2024-04-16', 900.00, 'Transferencia'), -> (5, 5, '2024-05-11', 459.00, 'Efectivo'), -> (6, 6, '2024-06-16', 1507.50, 'Tarjeta'), -> (7, 7, '2024-01-06', 600.00, 'Transferencia'), -> (8, 8, '2024-02-11', 350.00, 'Efectivo'), -> (9, 9, '2024-03-21', 553.00, 'Tarjeta'), -> (10, 10, '2024-04-26', 189.90, 'Transferencia'); Query OK, 10 rows affected (0.004 sec) Records: 10 Duplicates: 0 Warnings: 0 MariaDB [nventario_XYZ]> MariaDB [nventario_XYZ]> INSERT INTO usuarios (nombre_usuario, rol, email, password, fecha_registro) VALUES -> ('admin', 'Administrador', 'admin@inventarioxyz.com', SHA2('admin123', 256), '2023-10-01'), -> ('jperez', 'Vendedor', 'jperez@inventarioxyz.com', SHA2('ventas123', 256), '2023-11-15'), -> ('mgonzalez', 'Almacenista', 'mgonzalez@inventarioxyz.com', SHA2('almacen456', 256), '2023-12-20'), -> ('lramirez', 'Gerente', 'lramirez@inventarioxyz.com', SHA2('gerente789', 256), '2024-01-10'), -> ('acastro', 'Vendedor', 'acastro@inventarioxyz.com', SHA2('vendedorABC', 256), '2024-02-05'), -> ('rdiaz', 'Almacenista', 'rdiaz@inventarioxyz.com', SHA2('inventarioXYZ', 256), '2024-03-12'), -> ('mmartinez', 'Vendedor', 'mmartinez@inventarioxyz.com', SHA2('mm2024', 256), '2024-04-18'), -> ('pgomez', 'Gerente', 'pgomez@inventarioxyz.com', SHA2('pgomez789', 256), '2024-05-22'), -> ('lhernandez', 'Almacenista', 'lhernandez@inventarioxyz.com', SHA2('lh456', 256), '2024-06-01'), -> ('ecastro', 'Vendedor', 'ecastro@inventarioxyz.com', SHA2('ecastro123', 256), '2024-06-15'); Query OK, 10 rows affected (0.006 sec) Records: 10 Duplicates: 0 Warnings: 0 MariaDB [nventario_XYZ]> INSERT INTO informe_ventas (fecha_inicio, fecha_fin, total_ventas, productos_vendidos, reporte_completo) VALUES -> ('2024-01-01', '2024-01-31', 2400.00, 2, 'Ventas de laptops en enero'), -> ('2024-02-01', '2024-02-29', 855.00, 10, 'Ventas de teclados en febrero'), -> ('2024-03-01', '2024-03-31', 1299.50, 50, 'Ventas de mouses en marzo'), -> ('2024-04-01', '2024-04-30', 900.00, 5, 'Ventas de monitores en abril'), -> ('2024-05-01', '2024-05-31', 459.00, 10, 'Ventas de discos duros en mayo'), -> ('2024-06-01', '2024-06-30', 1507.50, 10, 'Ventas de impresoras en junio'), -> ('2024-01-01', '2024-06-30', 7421.00, 97, 'Reporte semestral de ventas'), -> ('2024-02-15', '2024-03-15', 2154.50, 60, 'Ventas en período especial'), -> ('2024-04-10', '2024-05-10', 1359.00, 15, 'Promoción de primavera'), -> ('2024-05-20', '2024-06-20', 1966.40, 20, 'Campaña de liquidación'); Query OK, 10 rows affected (0.004 sec) Records: 10 Duplicates: 0 Warnings: 0 MariaDB [nventario_XYZ]> CREATE TABLE resumen_ventas_clientes AS -> SELECT -> c.id_cliente, -> c.nombre AS nombre_cliente, -> COUNT(v.id_venta) AS total_compras, -> SUM(v.total_venta) AS total_gastado, -> MAX(v.fecha_venta) AS ultima_compra -> FROM -> clientes c -> LEFT JOIN -> ventas v ON c.id_cliente = v.id_cliente -> GROUP BY -> c.id_cliente, c.nombre; Query OK, 10 rows affected (0.021 sec) Records: 10 Duplicates: 0 Warnings: 0 MariaDB [nventario_XYZ]> select * from resumen_ventas_clientes; +------------+-----------------------+---------------+---------------+---------------+ | id_cliente | nombre_cliente | total_compras | total_gastado | ultima_compra | +------------+-----------------------+---------------+---------------+---------------+ | 1 | Empresa XYZ S.A. | 1 | 2400.00 | 2024-01-20 | | 2 | Tienda TechNow | 1 | 855.00 | 2024-02-25 | | 3 | Juan Morales | 1 | 1299.50 | 2024-03-30 | | 4 | María González | 1 | 900.00 | 2024-04-15 | | 5 | Oficina Contable ALFA | 1 | 459.00 | 2024-05-10 | | 6 | Luis Ramírez | 1 | 1507.50 | 2024-06-15 | | 7 | Escuela TecnoKids | 1 | 600.00 | 2024-01-05 | | 8 | Café Internet NetZone | 1 | 350.00 | 2024-02-10 | | 9 | Carlos Vásquez | 1 | 553.00 | 2024-03-20 | | 10 | Tienda GamerPro | 1 | 189.90 | 2024-04-25 | +------------+-----------------------+---------------+---------------+---------------+ 10 rows in set (0.000 sec) MariaDB [nventario_XYZ]> CREATE TABLE resumen_ventas_clientes AS -> SELECT -> c.id_cliente, -> c.nombre AS nombre_cliente, -> COUNT(v.id_venta) AS total_compras, -> SUM(v.total_venta) AS total_gastado, -> MAX(v.fecha_venta) AS ultima_compra -> FROM -> clientes c -> LEFT JOIN -> ventas v ON c.id_cliente = v.id_cliente -> GROUP BY -> c.id_cliente, c.nombre; ERROR 1050 (42S01): Table 'resumen_ventas_clientes' already exists MariaDB [nventario_XYZ]> DELIMITER // MariaDB [nventario_XYZ]> MariaDB [nventario_XYZ]> CREATE TRIGGER tr_actualizar_inventario_y_alerta -> BEFORE UPDATE ON productos -> FOR EACH ROW -> BEGIN -> -- 1. Registra el movimiento en inventario_historico -> INSERT INTO inventario_historico ( -> id_producto, -> cantidad_entrante, -> cantidad_salida, -> stock_final, -> fecha_actualizacion -> ) VALUES ( -> NEW.id_producto, -> IF(NEW.stock_actual > OLD.stock_actual, NEW.stock_actual - OLD.stock_actual, 0), -> IF(NEW.stock_actual < OLD.stock_actual, OLD.stock_actual - NEW.stock_actual, 0), -> NEW.stock_actual, -> NOW() -> ); -> -> -- 2. Genera alerta si el stock es menor a 5 unidades -> IF NEW.stock_actual < 5 AND OLD.stock_actual >= 5 THEN -> INSERT INTO alertas_inventario ( -> id_producto, -> tipo_alerta, -> fecha_alerta, -> descripcion -> ) VALUES ( -> NEW.id_producto, -> 'STOCK BAJO', -> CURDATE(), -> CONCAT('Alerta: Stock de "', NEW.nombre_producto, '" bajo (', NEW.stock_actual, ' unidades).') -> ); -> END IF; -> END// Query OK, 0 rows affected (0.007 sec) MariaDB [nventario_XYZ]> MariaDB [nventario_XYZ]> DELIMITER ; MariaDB [nventario_XYZ]> UPDATE productos -> SET stock_actual = 4 -> WHERE id_producto = 1; Query OK, 1 row affected (0.009 sec) Rows matched: 1 Changed: 1 Warnings: 0 MariaDB [nventario_XYZ]> select * from inventario_historico; +-------------------------+-------------+-------------------+-----------------+-------------+---------------------+ | id_inventario_historico | id_producto | cantidad_entrante | cantidad_salida | stock_final | fecha_actualizacion | +-------------------------+-------------+-------------------+-----------------+-------------+---------------------+ | 1 | 1 | 20 | 5 | 15 | 2024-01-10 | | 2 | 2 | 40 | 10 | 30 | 2024-02-15 | | 3 | 3 | 70 | 20 | 50 | 2024-03-20 | | 4 | 4 | 25 | 5 | 20 | 2024-01-25 | | 5 | 5 | 50 | 10 | 40 | 2024-04-05 | | 6 | 6 | 15 | 5 | 10 | 2024-02-28 | | 7 | 7 | 30 | 5 | 25 | 2024-03-10 | | 8 | 8 | 70 | 10 | 60 | 2024-05-01 | | 9 | 9 | 45 | 10 | 35 | 2024-04-15 | | 10 | 10 | 110 | 10 | 100 | 2024-05-20 | | 11 | 1 | 0 | 11 | 4 | 2025-05-31 | +-------------------------+-------------+-------------------+-----------------+-------------+---------------------+ 11 rows in set (0.000 sec) MariaDB [nventario_XYZ]> -- Paso 1: Crear tabla de resumen (si no existe) MariaDB [nventario_XYZ]> CREATE TABLE IF NOT EXISTS resumen_ventas_temporadas ( -> id INT AUTO_INCREMENT PRIMARY KEY, -> periodo VARCHAR(20), -> total_ventas DECIMAL(10,2), -> crecimiento DECIMAL(5,2) -> ); Query OK, 0 rows affected (0.014 sec) MariaDB [nventario_XYZ]> MariaDB [nventario_XYZ]> -- Paso 2: Insertar/Actualizar datos con análisis mensual MariaDB [nventario_XYZ]> INSERT INTO resumen_ventas_temporadas (periodo, total_ventas, crecimiento) -> WITH ventas_mensuales AS ( -> SELECT -> CONCAT(DATE_FORMAT(fecha_venta, '%M-%Y')) AS periodo, -> SUM(total_venta) AS total_ventas -> FROM -> ventas -> GROUP BY -> DATE_FORMAT(fecha_venta, '%Y-%m') -> ) -> SELECT -> periodo, -> total_ventas, -> ROUND( -> ((total_ventas - LAG(total_ventas) OVER (ORDER BY periodo)) / -> LAG(total_ventas) OVER (ORDER BY periodo)) * 100, 2 -> ) AS crecimiento -> FROM -> ventas_mensuales; Query OK, 6 rows affected (0.011 sec) Records: 6 Duplicates: 0 Warnings: 0 MariaDB [nventario_XYZ]> -- Crear tabla de resumen (si no existe) MariaDB [nventario_XYZ]> CREATE TABLE IF NOT EXISTS resumen_ventas_temporadas ( -> id INT AUTO_INCREMENT PRIMARY KEY, -> periodo VARCHAR(20), -> total_ventas DECIMAL(10,2), -> crecimiento DECIMAL(5,2) -> ); Query OK, 0 rows affected, 1 warning (0.000 sec) MariaDB [nventario_XYZ]> MariaDB [nventario_XYZ]> -- Insertar/Actualizar datos con análisis mensual MariaDB [nventario_XYZ]> INSERT INTO resumen_ventas_temporadas (periodo, total_ventas, crecimiento) -> WITH ventas_mensuales AS ( -> SELECT -> CONCAT(DATE_FORMAT(fecha_venta, '%M-%Y')) AS periodo, -> SUM(total_venta) AS total_ventas -> FROM -> ventas -> GROUP BY -> DATE_FORMAT(fecha_venta, '%Y-%m') -> ) -> SELECT -> periodo, -> total_ventas, -> ROUND( -> ((total_ventas - LAG(total_ventas) OVER (ORDER BY periodo)) / -> LAG(total_ventas) OVER (ORDER BY periodo)) * 100, 2 -> ) AS crecimiento -> FROM -> ventas_mensuales; Query OK, 6 rows affected (0.003 sec) Records: 6 Duplicates: 0 Warnings: 0 MariaDB [nventario_XYZ]> SELECT * FROM resumen_ventas_temporadas ORDER BY periodo; +----+---------------+--------------+-------------+ | id | periodo | total_ventas | crecimiento | +----+---------------+--------------+-------------+ | 1 | April-2024 | 1089.90 | NULL | | 8 | April-2024 | 1089.90 | NULL | | 9 | February-2024 | 1205.00 | 10.56 | | 2 | February-2024 | 1205.00 | 10.56 | | 10 | January-2024 | 3000.00 | 148.96 | | 3 | January-2024 | 3000.00 | 148.96 | | 4 | June-2024 | 1507.50 | -49.75 | | 11 | June-2024 | 1507.50 | -49.75 | | 5 | March-2024 | 1852.50 | 22.89 | | 12 | March-2024 | 1852.50 | 22.89 | | 6 | May-2024 | 459.00 | -75.22 | | 13 | May-2024 | 459.00 | -75.22 | +----+---------------+--------------+-------------+ 12 rows in set (0.000 sec) MariaDB [nventario_XYZ]> CREATE TABLE resumen_ventas_clientes AS -> SELECT -> c.id_cliente, -> c.nombre AS nombre_cliente, -> COUNT(v.id_venta) AS total_compras, -> SUM(v.total_venta) AS total_gastado, -> MAX(v.fecha_venta) AS ultima_compra -> FROM -> clientes c -> LEFT JOIN -> ventas v ON c.id_cliente = v.id_cliente -> GROUP BY -> c.id_cliente, c.nombre; ERROR 1050 (42S01): Table 'resumen_ventas_clientes' already exists MariaDB [nventario_XYZ]> SELECT -> v.id_venta, -> v.fecha_venta, -> c.nombre AS cliente, -> p.nombre_producto AS producto, -> dv.cantidad AS cantidad_vendida -> FROM ventas v -> JOIN clientes c ON v.id_cliente = c.id_cliente -> JOIN detalles_venta dv ON v.id_venta = dv.id_venta -> JOIN productos p ON dv.id_producto = p.id_producto -> ORDER BY v.fecha_venta; +----------+-------------+-----------------------+----------------------+------------------+ | id_venta | fecha_venta | cliente | producto | cantidad_vendida | +----------+-------------+-----------------------+----------------------+------------------+ | 7 | 2024-01-05 | Escuela TecnoKids | Router WiFi 6 | 5 | | 1 | 2024-01-20 | Empresa XYZ S.A. | Laptop HP EliteBook | 2 | | 8 | 2024-02-10 | Café Internet NetZone | Webcam 1080p | 10 | | 2 | 2024-02-25 | Tienda TechNow | Teclado Mecánico RGB | 10 | | 9 | 2024-03-20 | Carlos Vásquez | Altavoces Bluetooth | 10 | | 3 | 2024-03-30 | Juan Morales | Mouse Inalámbrico | 50 | | 4 | 2024-04-15 | María González | Monitor 24" Samsung | 5 | | 10 | 2024-04-25 | Tienda GamerPro | Tarjeta SD 128GB | 10 | | 5 | 2024-05-10 | Oficina Contable ALFA | Disco Duro 1TB | 10 | | 6 | 2024-06-15 | Luis Ramírez | Impresora Epson | 10 | +----------+-------------+-----------------------+----------------------+------------------+ 10 rows in set (0.001 sec) MariaDB [nventario_XYZ]> Bye Ctrl-C -- exit! C:\xampp\mysql\bin>mysql -u root -p -h localhost Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 44 Server version: 10.4.32-MariaDB mariadb.org binary distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> select user(); +----------------+ | user() | +----------------+ | root@localhost | +----------------+ 1 row in set (0.000 sec) MariaDB [(none)]> use mysql; Database changed MariaDB [mysql]> select user from user; +----------------------+ | User | +----------------------+ | root | | root | | pma | | root | | usuario_admin | | usuario_limitado | | usuario_sin_permisos | +----------------------+ 7 rows in set (0.001 sec) MariaDB [mysql]> CREATE USER 'sin_permisos'@'localhost' IDENTIFIED BY 'contraseña_segura'; Query OK, 0 rows affected (0.005 sec) MariaDB [mysql]> SHOW GRANTS FOR 'sin_permisos'@'localhost'; +---------------------------------------------------------------------------------------------------------------------+ | Grants for sin_permisos@localhost | +---------------------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO `sin_permisos`@`localhost` IDENTIFIED BY PASSWORD '*2F56166C3FDABCBF50F713F0A9ED915EB4AA6F15' | +---------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.000 sec) MariaDB [mysql]> GRANT SELECT, INSERT ON inventario_xyz.cliente TO 'usuario_limit'@'localhost'; ERROR 1146 (42S02): Table 'inventario_xyz.cliente' doesn't exist MariaDB [mysql]> GRANT SELECT, INSERT ON nventario_XYZ.clientes TO 'usuario_limit'@'localhost'; ERROR 1034 (HY000): Index for table 'tables_priv' is corrupt; try to repair it MariaDB [mysql]> GRANT SELECT, INSERT ON nventario_XYZ.clientes TO 'usuario_limit'@'localhost'; Query OK, 0 rows affected (0.002 sec) MariaDB [mysql]> SHOW GRANTS FOR 'usuario_limit'@'localhost'; +-----------------------------------------------------------------------------------+ | Grants for usuario_limit@localhost | +-----------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO `usuario_limit`@`localhost` | | GRANT SELECT, INSERT ON `nventario_xyz`.`clientes` TO `usuario_limit`@`localhost` | +-----------------------------------------------------------------------------------+ 2 rows in set (0.000 sec) MariaDB [mysql]> CREATE USER 'usuario_full'@'localhost' IDENTIFIED BY 'contraseña_segura'; Query OK, 0 rows affected (0.002 sec) MariaDB [mysql]> GRANT ALL PRIVILEGES ON nventario_XYZ.* TO 'usuario_full'@'localhost'; ERROR 1030 (HY000): Got error 176 "Read page with wrong checksum" from storage engine Aria MariaDB [mysql]> cd /xampp/mysql/data/nventario_XYZ -> aria_chk -r -v *.MAI -> ; 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 'cd /xampp/mysql/data/nventario_XYZ aria_chk -r -v *.MAI' at line 1 MariaDB [mysql]> mysql -uroot -p -> -> -> -> -> -> -> exit; 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 'mysql -uroot -p exit' at line 1 MariaDB [mysql]> exit Bye C:\xampp\mysql\bin>mysql -uroot -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 49 Server version: 10.4.32-MariaDB mariadb.org binary distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> use nventario_XYZ; Database changed MariaDB [nventario_XYZ]> exit Bye C:\xampp\mysql\bin>mysqldump -B -uroot -p --routines nventario_XYZ>c:/xampp/nventario_XYZ2.sql Enter password: