-- BASE DE DATOS: CONTROL DE VENTAS
CREATE DATABASE control_ventas_simple;
USE control_ventas_simple;
-- TABLA: CLIENTES
CREATE TABLE clientes (
id_cliente INT AUTO_INCREMENT PRIMARY KEY,
nombres VARCHAR(100),
apellidos VARCHAR(100),
nit VARCHAR(20),
telefono VARCHAR(20),
correo VARCHAR(100),
direccion VARCHAR(255)
);
-- TABLA: CATEGORIAS
CREATE TABLE categorias (
id_categoria INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100),
descripcion VARCHAR(255)
);
-- TABLA: PRODUCTOS
CREATE TABLE productos (
id_producto INT AUTO_INCREMENT PRIMARY KEY,
id_categoria INT,
codigo VARCHAR(50),
nombre VARCHAR(150),
precio_venta DECIMAL(10,2),
stock INT,
FOREIGN KEY (id_categoria)
REFERENCES categorias(id_categoria)
);
-- TABLA: DETALLE_VENTAS
CREATE TABLE detalle_ventas (
id_detalle_venta INT AUTO_INCREMENT PRIMARY KEY,
id_cliente INT,
id_producto INT,
cantidad INT,
precio_unitario DECIMAL(10,2),
total DECIMAL(10,2),
FOREIGN KEY (id_cliente)
REFERENCES clientes(id_cliente),
FOREIGN KEY (id_producto)
REFERENCES productos(id_producto)
);
-- TABLA: PAGOS
CREATE TABLE pagos (
id_pago INT AUTO_INCREMENT PRIMARY KEY,
id_detalle_venta INT,
metodo_pago VARCHAR(50),
monto DECIMAL(10,2),
FOREIGN KEY (id_detalle_venta)
REFERENCES detalle_ventas(id_detalle_venta)
);
-- INSERTAR CATEGORIAS
INSERT INTO categorias (nombre, descripcion) VALUES
('Electrónica', 'Dispositivos y equipos electrónicos'),
('Hogar', 'Artículos para el hogar'),
('Papelería', 'Útiles de oficina y papelería'),
('Ropa', 'Prendas de vestir'),
('Alimentos', 'Productos alimenticios no perecederos');
-- INSERTAR CLIENTES
INSERT INTO clientes (nombres, apellidos, nit, telefono, correo, direccion)
VALUES
('Carlos', 'López Pérez', '1234567-8', '55001100', 'carlos@[Link]',
'Zona 1, Guatemala'),
('María', 'García Torres', '2345678-9', '55002200', 'maria@[Link]',
'Zona 10, Guatemala'),
('José', 'Martínez Ruiz', '3456789-0', '55003300', 'jose@[Link]', 'Zona
5, Guatemala'),
('Ana', 'Rodríguez Díaz', '4567890-1', '55004400', 'ana@[Link]',
'Zona 12, Guatemala'),
('Luis', 'Hernández Mtz.', '5678901-2', '55005500', 'luis@[Link]',
'Zona 7, Guatemala');
-- INSERTAR PRODUCTOS
INSERT INTO productos (id_categoria, codigo, nombre, precio_venta,
stock) VALUES
(1, 'ELEC-001', 'Audífonos Bluetooth', 350.00, 20),
(1, 'ELEC-002', 'Teclado Inalámbrico', 275.00, 15),
(2, 'HOGA-001', 'Cafetera Eléctrica', 450.00, 10),
(3, 'PAPE-001', 'Resma de Papel Bond', 45.00, 100),
(4, 'ROPA-001', 'Camisa Polo', 120.00, 50);
-- INSERTAR DETALLE VENTAS
INSERT INTO detalle_ventas (
id_cliente,
id_producto,
cantidad,
precio_unitario,
total
) VALUES
(1, 1, 2, 350.00, 700.00),
(2, 3, 1, 450.00, 450.00),
(3, 4, 5, 45.00, 225.00),
(4, 2, 1, 275.00, 275.00),
(5, 5, 3, 120.00, 360.00);
-- INSERTAR PAGOS
INSERT INTO pagos (
id_detalle_venta,
metodo_pago,
monto
) VALUES
(1, 'Efectivo', 700.00),
(2, 'Tarjeta Débito', 450.00),
(3, 'Efectivo', 225.00),
(4, 'Transferencia', 275.00),
(5, 'Tarjeta Crédito', 360.00);
-- CONSULTA FINAL
SELECT
CONCAT([Link], ' ', [Link]) AS Cliente,
[Link] AS Producto,
[Link] AS Cantidad,
dv.precio_unitario AS Precio_Unitario,
[Link] AS Total,
pa.metodo_pago AS Metodo_Pago
FROM detalle_ventas dv
INNER JOIN clientes c
ON dv.id_cliente = c.id_cliente
INNER JOIN productos p
ON dv.id_producto = p.id_producto
INNER JOIN pagos pa
ON pa.id_detalle_venta = dv.id_detalle_venta
ORDER BY [Link] DESC;