8/02/2024

Introducción a base de datos

 

Practica de Introducción a base de datos

 -- Crear base de datos

CREATE DATABASE EmpresaAlimentos;


-- Usar la base de datos

USE EmpresaAlimentos;

-- Crear tablas

CREATE TABLE Cliente (

    ClienteID INT PRIMARY KEY IDENTITY,

    Nombre VARCHAR(100),

    Dirección VARCHAR(200),

    Teléfono VARCHAR(20),

    CorreoElectrónico VARCHAR(100)

);


CREATE TABLE Proveedor (

    ProveedorID INT PRIMARY KEY IDENTITY,

    Nombre VARCHAR(100),

    Dirección VARCHAR(200),

    Teléfono VARCHAR(20),

    CorreoElectrónico VARCHAR(100)

);


CREATE TABLE Producto (

    ProductoID INT PRIMARY KEY IDENTITY,

    Nombre VARCHAR(100),

    Descripción TEXT,

    Precio DECIMAL(18, 2),

    Stock INT,

    ProveedorID INT,

    FOREIGN KEY (ProveedorID) REFERENCES Proveedor(ProveedorID)

);


CREATE TABLE Categoría (

    CategoríaID INT PRIMARY KEY IDENTITY,

    Nombre VARCHAR(100),

    Descripción TEXT

);


CREATE TABLE ProductoCategoría (

    ProductoID INT,

    CategoríaID INT,

    PRIMARY KEY (ProductoID, CategoríaID),

    FOREIGN KEY (ProductoID) REFERENCES Producto(ProductoID),

    FOREIGN KEY (CategoríaID) REFERENCES Categoría(CategoríaID)

);


CREATE TABLE Empleado (

    EmpleadoID INT PRIMARY KEY IDENTITY,

    Nombre VARCHAR(100),

    Puesto VARCHAR(100),

    Teléfono VARCHAR(20),

    CorreoElectrónico VARCHAR(100),

    Salario DECIMAL(18, 2)

);


CREATE TABLE Venta (

    VentaID INT PRIMARY KEY IDENTITY,

    Fecha DATETIME,

    ClienteID INT,

    EmpleadoID INT,

    Total DECIMAL(18, 2),

    FOREIGN KEY (ClienteID) REFERENCES Cliente(ClienteID),

    FOREIGN KEY (EmpleadoID) REFERENCES Empleado(EmpleadoID)

);


CREATE TABLE DetalleVenta (

    DetalleVentaID INT PRIMARY KEY IDENTITY,

    VentaID INT,

    ProductoID INT,

    Cantidad INT,

    PrecioUnitario DECIMAL(18, 2),

    Subtotal AS (Cantidad * PrecioUnitario) PERSISTED,

    FOREIGN KEY (VentaID) REFERENCES Venta(VentaID),

    FOREIGN KEY (ProductoID) REFERENCES Producto(ProductoID)

);


CREATE TABLE ProveedorProducto (

    ProveedorID INT,

    ProductoID INT,

    PRIMARY KEY (ProveedorID, ProductoID),

    FOREIGN KEY (ProveedorID) REFERENCES Proveedor(ProveedorID),

    FOREIGN KEY (ProductoID) REFERENCES Producto(ProductoID)

);


CREATE TABLE Almacén (

    AlmacénID INT PRIMARY KEY IDENTITY,

    Nombre VARCHAR(100),

    Dirección VARCHAR(200),

    Capacidad INT

);


-- Tabla intermedia para gestionar inventario en almacenes (opcional)

CREATE TABLE AlmacénProducto (

    AlmacénID INT,

    ProductoID INT,

    Cantidad INT,

    PRIMARY KEY (AlmacénID, ProductoID),

    FOREIGN KEY (AlmacénID) REFERENCES Almacén(AlmacénID),

    FOREIGN KEY (ProductoID) REFERENCES Producto(ProductoID)

);


Para introducir y consultar datos en las tablas de tu base de datos, aquí tienes ejemplos de cómo hacerlo en SQL. Utilizaré SQL Server para estos ejemplos, pero la sintaxis básica debería ser similar en otros sistemas de gestión de bases de datos como MySQL o PostgreSQL, aunque podrían tener ligeras diferencias.

Insertar Datos

1. Insertar datos en la tabla Cliente:

INSERT INTO Cliente (Nombre, Dirección, Teléfono, CorreoElectrónico)

VALUES ('Juan Pérez', 'Calle Falsa 123', '555-1234', 'juan.perez@example.com');

2. Insertar datos en la tabla Proveedor:

INSERT INTO Proveedor (Nombre, Dirección, Teléfono, CorreoElectrónico)

VALUES ('Proveedores S.A.', 'Avenida Central 456', '555-5678', 'contacto@proveedores.com');

3. Insertar datos en la tabla Producto:

INSERT INTO Producto (Nombre, Descripción, Precio, Stock, ProveedorID)

VALUES ('Harina de Trigo', 'Harina de trigo para panificación', 1.50, 100, 1);

4. Insertar datos en la tabla Categoría:

INSERT INTO Categoría (Nombre, Descripción)

VALUES ('Granos', 'Productos derivados de granos');

5. Insertar datos en la tabla ProductoCategoría:

INSERT INTO ProductoCategoría (ProductoID, CategoríaID)

VALUES (1, 1);

6. Insertar datos en la tabla Empleado:

INSERT INTO Empleado (Nombre, Puesto, Teléfono, CorreoElectrónico, Salario)

VALUES ('Ana Gómez', 'Vendedora', '555-8765', 'ana.gomez@example.com', 2500.00);

7. Insertar datos en la tabla Venta:

INSERT INTO Venta (Fecha, ClienteID, EmpleadoID, Total)

VALUES ('2024-08-01 10:00:00', 1, 1, 10.00);

8. Insertar datos en la tabla DetalleVenta:

INSERT INTO DetalleVenta (VentaID, ProductoID, Cantidad, PrecioUnitario)

VALUES (1, 1, 5, 1.50);

9. Insertar datos en la tabla ProveedorProducto:

INSERT INTO ProveedorProducto (ProveedorID, ProductoID)

VALUES (1, 1);

10. Insertar datos en la tabla Almacén:

INSERT INTO Almacén (Nombre, Dirección, Capacidad)

VALUES ('Almacén Central', 'Calle Principal 789', 1000);

11. Insertar datos en la tabla AlmacénProducto:

INSERT INTO AlmacénProducto (AlmacénID, ProductoID, Cantidad)

VALUES (1, 1, 100);

Consultar Datos

1. Consultar todos los clientes:

SELECT * FROM Cliente;

2. Consultar todos los proveedores:

SELECT * FROM Proveedor;

3. Consultar todos los productos:

SELECT * FROM Producto;

4. Consultar todos los productos en una categoría específica:

SELECT p.*

FROM Producto p

JOIN ProductoCategoría pc ON p.ProductoID = pc.ProductoID

WHERE pc.CategoríaID = 1; 

 

-- Suponiendo que quieres consultar la categoría con ID 1

5. Consultar todas las ventas de un cliente específico:

SELECT v.*

FROM Venta v

WHERE v.ClienteID = 1; 

 

-- Suponiendo que quieres consultar las ventas del cliente con ID 1

6. Consultar detalles de una venta específica:

SELECT dv.*, p.Nombre AS ProductoNombre

FROM DetalleVenta dv

JOIN Producto p ON dv.ProductoID = p.ProductoID

WHERE dv.VentaID = 1; 

 

-- Suponiendo que quieres consultar los detalles de la venta con ID 1

7. Consultar el inventario en un almacén específico:

SELECT ap.*, p.Nombre AS ProductoNombre

FROM AlmacénProducto ap

JOIN Producto p ON ap.ProductoID = p.ProductoID

WHERE ap.AlmacénID = 1; 

 

-- Suponiendo que quieres consultar el inventario del almacén con ID 1

8. Consultar los proveedores que suministran un producto específico:

SELECT pr.*

FROM Proveedor pr

JOIN ProveedorProducto pp ON pr.ProveedorID = pp.ProveedorID

WHERE pp.ProductoID = 1; 

 

-- Suponiendo que quieres consultar los proveedores del producto con ID 1


 

Insertar Datos en la Tabla Cliente

-- Insertar datos en la tabla Cliente
INSERT INTO Cliente (Nombre, Dirección, Teléfono, CorreoElectrónico) VALUES
('Juan Pérez', 'Calle Falsa 123', '555-1234', 'juan.perez@example.com'),
('Ana Gómez', 'Calle Verdadera 456', '555-2345', 'ana.gomez@example.com'),
('Carlos Ruiz', 'Avenida de la Reforma 789', '555-3456', 'carlos.ruiz@example.com'),
('María Fernández', 'Calle del Sol 101', '555-4567', 'maria.fernandez@example.com'),
('Laura Martínez', 'Calle del Norte 202', '555-5678', 'laura.martinez@example.com'),
('Jorge López', 'Calle del Este 303', '555-6789', 'jorge.lopez@example.com'),
('Marta Sánchez', 'Calle del Oeste 404', '555-7890', 'marta.sanchez@example.com'),
('Pedro García', 'Calle del Centro 505', '555-8901', 'pedro.garcia@example.com'),
('Lucía Morales', 'Calle de la Luna 606', '555-9012', 'lucia.morales@example.com'),
('David González', 'Calle de la Estrella 707', '555-0123', 'david.gonzalez@example.com');

Insertar Datos en la Tabla Proveedor

-- Insertar datos en la tabla Proveedor
INSERT INTO Proveedor (Nombre, Dirección, Teléfono, CorreoElectrónico) VALUES
('Proveedores S.A.', 'Avenida Central 456', '555-5678', 'contacto@proveedores.com'),
('Distribuciones ABC', 'Calle de la Industria 123', '555-6789', 'info@abc.com'),
('Suministros XYZ', 'Avenida del Comercio 234', '555-7890', 'ventas@xyz.com'),
('Fabrica de Harinas', 'Calle Panadera 345', '555-8901', 'harinas@fabrica.com'),
('Alimentos Globales', 'Calle Mayor 456', '555-9012', 'globales@alimentos.com');

Insertar Datos en la Tabla Categoría

-- Insertar datos en la tabla Categoría
INSERT INTO Categoría (Nombre, Descripción) VALUES
('Granos', 'Productos derivados de granos'),
('Lácteos', 'Productos lácteos y derivados'),
('Bebidas', 'Bebidas alcohólicas y no alcohólicas'),
('Carnes', 'Carnes y productos cárnicos'),
('Vegetales', 'Vegetales y frutas frescas');

Insertar Datos en la Tabla Producto

-- Insertar datos en la tabla Producto
INSERT INTO Producto (Nombre, Descripción, Precio, Stock, ProveedorID) VALUES
('Harina de Trigo', 'Harina de trigo para panificación', 1.50, 100, 1),
('Leche Entera', 'Leche entera pasteurizada', 0.90, 200, 2),
('Jugo de Naranja', 'Jugo natural de naranja', 2.00, 150, 3),
('Pechuga de Pollo', 'Pechuga de pollo fresca', 5.00, 50, 4),
('Manzanas', 'Manzanas frescas de calidad', 1.20, 80, 5),
('Pan Integral', 'Pan integral recién horneado', 1.80, 60, 1),
('Queso Cheddar', 'Queso cheddar en bloque', 3.50, 40, 2),
('Cerveza Artesanal', 'Cerveza artesanal de elaboración local', 4.00, 70, 3),
('Carne de Res', 'Carne de res para asado', 6.00, 30, 4),
('Zanahorias', 'Zanahorias frescas y crujientes', 0.80, 90, 5);

Insertar Datos en la Tabla ProductoCategoría

-- Insertar datos en la tabla ProductoCategoría
INSERT INTO ProductoCategoría (ProductoID, CategoríaID) VALUES
(1, 1),  -- Harina de Trigo en Categoría Granos
(2, 2),  -- Leche Entera en Categoría Lácteos
(3, 3),  -- Jugo de Naranja en Categoría Bebidas
(4, 4),  -- Pechuga de Pollo en Categoría Carnes
(5, 5),  -- Manzanas en Categoría Vegetales
(6, 1),  -- Pan Integral en Categoría Granos
(7, 2),  -- Queso Cheddar en Categoría Lácteos
(8, 3),  -- Cerveza Artesanal en Categoría Bebidas
(9, 4),  -- Carne de Res en Categoría Carnes
(10, 5); -- Zanahorias en Categoría Vegetales

Insertar Datos en la Tabla Empleado

-- Insertar datos en la tabla Empleado
INSERT INTO Empleado (Nombre, Puesto, Teléfono, CorreoElectrónico, Salario) VALUES
('Ana Gómez', 'Vendedora', '555-8765', 'ana.gomez@example.com', 2500.00),
('Luis Fernández', 'Cajero', '555-9876', 'luis.fernandez@example.com', 2200.00),
('Sofía Martínez', 'Gerente', '555-6543', 'sofia.martinez@example.com', 3500.00),
('Raúl Pérez', 'Supervisor', '555-3210', 'raul.perez@example.com', 3000.00),
('Isabel López', 'Repartidor', '555-4568', 'isabel.lopez@example.com', 2000.00');

Insertar Datos en la Tabla Venta

-- Insertar datos en la tabla Venta
INSERT INTO Venta (Fecha, ClienteID, EmpleadoID, Total) VALUES
('2024-08-01 10:00:00', 1, 1, 10.00),
('2024-08-01 11:00:00', 2, 2, 15.00),
('2024-08-02 09:30:00', 3, 3, 20.00),
('2024-08-02 14:00:00', 4, 4, 25.00),
('2024-08-03 16:00:00', 5, 5, 30.00');

Insertar Datos en la Tabla DetalleVenta

-- Insertar datos en la tabla DetalleVenta
INSERT INTO DetalleVenta (VentaID, ProductoID, Cantidad, PrecioUnitario) VALUES
(1, 1, 5, 1.50),  -- Harina de Trigo
(1, 2, 2, 0.90),  -- Leche Entera
(2, 3, 6, 2.00),  -- Jugo de Naranja
(2, 4, 3, 5.00),  -- Pechuga de Pollo
(3, 5, 4, 1.20),  -- Manzanas
(3, 6, 2, 1.80),  -- Pan Integral
(4, 7, 1, 3.50),  -- Queso Cheddar
(4, 8, 3, 4.00),  -- Cerveza Artesanal
(5, 9, 2, 6.00),  -- Carne de Res
(5, 10, 5, 0.80); -- Zanahorias

Insertar Datos en la Tabla ProveedorProducto

-- Insertar datos en la tabla ProveedorProducto
INSERT INTO ProveedorProducto (ProveedorID, ProductoID) VALUES
(1, 1),  -- Harina de Trigo
(2, 2),  -- Leche Entera
(3, 3),  -- Jugo de Naranja
(4, 4),  -- Pechuga de Pollo
(5, 5),  -- Manzanas
(1, 6),  -- Pan Integral
(2, 7),  -- Queso Cheddar
(3, 8),  -- Cerveza Artesanal
(4, 9),  -- Carne de Res
(5, 10); -- Zanahorias

Insertar Datos en la Tabla Almacén

-- Insertar datos en la tabla Almacén
INSERT INTO Almacén (Nombre, Dirección, Capacidad) VALUES
('Almacén Central', 'Calle Principal 789', 1000),
('Almacén Norte', 'Avenida del Norte 100', 800),
('Almacén Sur', 'Calle del Sur 200', 600);

Insertar Datos en la Tabla AlmacénProducto

-- Insertar datos en la tabla AlmacénProducto
INSERT INTO AlmacénProducto (AlmacénID, ProductoID, Cantidad) VALUES
(1, 1, 100),  -- Harina de Trigo en Almacén Central
(1, 2, 200),  -- Leche Entera en Almacén Central
(2, 3, 150),  -- Jugo de Naranja en Almacén Norte
(2, 4, 50),   -- Pechuga de Pollo en Almacén Norte
(3, 5, 80),   -- Manzanas en Almacén Sur
(3, 6, 60),   -- Pan Integral en Almacén Sur
(1, 7, 40),   -- Queso Cheddar en Almacén Central
(1, 8, 70),   -- Cerveza Artesanal en Almacén Central
(2, 9, 30),   -- Carne de Res en Almacén Norte

(3, 10, 90);  -- Zanahorias en Almacén Sur

No hay comentarios:

Publicar un comentario

Glosario de Windows

Computadora:  Es un aparato electrónico, capaz de procesar cualquier tipo de información, de forma rápida y eficiente. La cual es presenta...