===============================================================================================
  SQLITE DESDE CERO
  Código Python didáctico · Kardex Tauro · kardex-tauro.muisca.co
===============================================================================================
Productos leídos del CSV: 8

===============================================================================================
PASO 1: CREAR LA BASE Y LA TABLA
===============================================================================================
SQL: CREATE TABLE IF NOT EXISTS productos (codigo TEXT PRIMARY KEY, producto TEXT NOT NULL, categoria TEXT NOT NULL, precio INTEGER NOT NULL, existencias INTEGER NOT NULL)
Tabla productos lista.

===============================================================================================
PASO 2: INSERTAR LOS PRODUCTOS
===============================================================================================
SQL: INSERT INTO productos (codigo, producto, categoria, precio, existencias) VALUES (?, ?, ?, ?, ?)
Productos insertados: 8

===============================================================================================
PASO 3: CONSULTAR (SELECT ... ORDER BY)
===============================================================================================
SQL: SELECT codigo, producto, categoria, precio, existencias FROM productos ORDER BY codigo
-----------------------------------------------------------------------------------------------
Código  Producto                     Categoría             Precio Existencias             Valor
-----------------------------------------------------------------------------------------------
E01     Cable THHN 12 AWG (metro)    Eléctrico           3.600,00         500      1.800.000,00
E02     Breaker 20 A                 Eléctrico          42.800,00          24      1.027.200,00
E03     Cinta aislante negra         Eléctrico           5.900,00         200      1.180.000,00
H01     Taladro percutor 650 W       Herramientas      289.900,00          12      3.478.800,00
H02     Martillo de bola 16 oz       Herramientas       45.900,00          40      1.836.000,00
H03     Llave ajustable 10 pulg      Herramientas       62.900,00          18      1.132.200,00
P01     Tubo PVC 1/2 pulg x 3 m      Plomería           18.900,00         120      2.268.000,00
P02     Llave de paso 1/2 pulg       Plomería           34.500,00          35      1.207.500,00
-----------------------------------------------------------------------------------------------
Filas consultadas: 8

===============================================================================================
PASO 4: ACTUALIZAR UN PRECIO (UPDATE)
===============================================================================================
SQL: SELECT precio FROM productos WHERE codigo = ?
Código actualizado: E01
Precio antes: 3.600,00
SQL: UPDATE productos SET precio = ? WHERE codigo = ?
Precio después: 3.900,00
Filas modificadas por el UPDATE: 1

===============================================================================================
PASO 5: BORRAR UN PRODUCTO (DELETE)
===============================================================================================
SQL: DELETE FROM productos WHERE codigo = ?
Código eliminado: E03
Filas borradas por el DELETE: 1
SQL: SELECT COUNT(*) FROM productos
Productos que quedan en la tabla: 7

===============================================================================================
PASO 6: CONSULTA DE NEGOCIO (SUM ... GROUP BY)
===============================================================================================
SQL: SELECT COUNT(*), SUM(precio * existencias) FROM productos
Productos en la tabla: 7
SQL: SELECT categoria, COUNT(*) AS articulos, SUM(precio * existencias) AS valor FROM productos GROUP BY categoria ORDER BY valor DESC
VALOR DEL INVENTARIO POR CATEGORÍA
--------------------------------------------------------
Categoría       Productos             Valor  % del valor
--------------------------------------------------------
Herramientas            3      6.447.000,00      49,98 %
Plomería                2      3.475.500,00      26,94 %
Eléctrico               2      2.977.200,00      23,08 %
--------------------------------------------------------
Comprobación (suma de categorías = total): CUADRA

===============================================================================================
PASO 7: CERRAR Y CONFIRMAR
===============================================================================================
Al salir del bloque with, la conexión confirma los cambios pendientes.
Si algo fallara antes, el with deshace la operación y la base queda como estaba.
Conexión cerrada. La base quedó guardada.

===============================================================================================
CIERRE
===============================================================================================
  Productos en la tabla: 7
  Valor total del inventario: 12.899.700,00
  Archivo generado: salida/tienda.db
