MAIRA ALEXANDRA MOSQUERA PADILLA

VERONICA GIRALDO BARRIENTOS

LIZETH PALACIOS AMAYA

MARIANA POSADA PÉREZ

SCRIPT

            -- phpMyAdmin SQL Dump
-- version 5.2.1
-- https://www.phpmyadmin.net/
--
-- Servidor: 127.0.0.1:3306
-- Tiempo de generación: 13-05-2024 a las 01:55:21
-- Versión del servidor: 8.3.0
-- Versión de PHP: 8.1.2-1ubuntu2.17

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Base de datos: basedtos
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla Bodegas
--

CREATE TABLE Bodegas (
  idBodega int NOT NULL,
  Nombre varchar(45) DEFAULT NULL,
  Dirección varchar(45) DEFAULT NULL,
  Capacidad varchar(45) DEFAULT NULL,
  idEmpresa int NOT NULL,
  idCargoAutorizado int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla Cargos
--

CREATE TABLE Cargos (
  idCargo int NOT NULL,
  Nombre varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla CargosAutorizados
--

CREATE TABLE CargosAutorizados (
  idCargoAutorizado int NOT NULL,
  idCargo int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla Empleados
--

CREATE TABLE Empleados (
  idEmpleado int NOT NULL,
  Nombre varchar(50) DEFAULT NULL,
  Identificación varchar(20) DEFAULT NULL,
  Correo varchar(45) DEFAULT NULL,
  Teléfono varchar(45) DEFAULT NULL,
  idCargo int NOT NULL,
  idIdentidadAutorizada int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla Empresas
--

CREATE TABLE Empresas (
  idEmpresa int NOT NULL,
  NombreE varchar(50) DEFAULT NULL,
  Dirección varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla IdentidadAutorizada
--

CREATE TABLE IdentidadAutorizada (
  idIdentidadAutorizada int NOT NULL,
  idBodega int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla Movimientos
--

CREATE TABLE Movimientos (
  idMovimiento int NOT NULL,
  Fecha date DEFAULT NULL,
  Hora time DEFAULT NULL,
  Descripción varchar(200) DEFAULT NULL,
  idEmpleado int NOT NULL,
  idProductbode int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla Productbode
--

CREATE TABLE Productbode (
  idProductbode int NOT NULL,
  Cantidad varchar(45) DEFAULT NULL,
  FechaV date DEFAULT NULL,
  idBodega int NOT NULL,
  idProducto int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla Productos
--

CREATE TABLE Productos (
  idProducto int NOT NULL,
  NombreP varchar(60) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

--
-- Índices para tablas volcadas
--

--
-- Indices de la tabla Bodegas
--
ALTER TABLE Bodegas
  ADD PRIMARY KEY (idBodega),
  ADD KEY fk_Empresa (idEmpresa),
  ADD KEY fk_CargoAutorizado (idCargoAutorizado);

--
-- Indices de la tabla Cargos
--
ALTER TABLE Cargos
  ADD PRIMARY KEY (idCargo);

--
-- Indices de la tabla CargosAutorizados
--
ALTER TABLE CargosAutorizados
  ADD PRIMARY KEY (idCargoAutorizado),
  ADD KEY fk_Cargo (idCargo);

--
-- Indices de la tabla Empleados
--
ALTER TABLE Empleados
  ADD PRIMARY KEY (idEmpleado),
  ADD KEY fk_Cargo_1 (idCargo),
  ADD KEY fk_IdentidadAutorizada (idIdentidadAutorizada);

--
-- Indices de la tabla Empresas
--
ALTER TABLE Empresas
  ADD PRIMARY KEY (idEmpresa);

--
-- Indices de la tabla IdentidadAutorizada
--
ALTER TABLE IdentidadAutorizada
  ADD PRIMARY KEY (idIdentidadAutorizada),
  ADD KEY fk_idBodega_1 (idBodega);

--
-- Indices de la tabla Movimientos
--
ALTER TABLE Movimientos
  ADD PRIMARY KEY (idMovimiento),
  ADD KEY fk_Empleado (idEmpleado),
  ADD KEY fk_Productbode (idProductbode);

--
-- Indices de la tabla Productbode
--
ALTER TABLE Productbode
  ADD PRIMARY KEY (idProductbode),
  ADD KEY fk_Bodega (idBodega),
  ADD KEY fk_Producto (idProducto);

--
-- Indices de la tabla Productos
--
ALTER TABLE Productos
  ADD PRIMARY KEY (idProducto);

--
-- AUTO_INCREMENT de las tablas volcadas
--

--
-- AUTO_INCREMENT de la tabla Bodegas
--
ALTER TABLE Bodegas
  MODIFY idBodega int NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT de la tabla Cargos
--
ALTER TABLE Cargos
  MODIFY idCargo int NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT de la tabla CargosAutorizados
--
ALTER TABLE CargosAutorizados
  MODIFY idCargoAutorizado int NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT de la tabla Empleados
--
ALTER TABLE Empleados
  MODIFY idEmpleado int NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT de la tabla Empresas
--
ALTER TABLE Empresas
  MODIFY idEmpresa int NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT de la tabla IdentidadAutorizada
--
ALTER TABLE IdentidadAutorizada
  MODIFY idIdentidadAutorizada int NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT de la tabla Movimientos
--
ALTER TABLE Movimientos
  MODIFY idMovimiento int NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT de la tabla Productbode
--
ALTER TABLE Productbode
  MODIFY idProductbode int NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT de la tabla Productos
--
ALTER TABLE Productos
  MODIFY idProducto int NOT NULL AUTO_INCREMENT;

--
-- Restricciones para tablas volcadas
--

--
-- Filtros para la tabla Bodegas
--
ALTER TABLE Bodegas
  ADD CONSTRAINT fk_CargoAutorizado FOREIGN KEY (idCargoAutorizado) REFERENCES CargosAutorizados (idCargoAutorizado),
  ADD CONSTRAINT fk_Empresa FOREIGN KEY (idEmpresa) REFERENCES Empresas (idEmpresa);

--
-- Filtros para la tabla CargosAutorizados
--
ALTER TABLE CargosAutorizados
  ADD CONSTRAINT fk_Cargo FOREIGN KEY (idCargo) REFERENCES Cargos (idCargo);

--
-- Filtros para la tabla Empleados
--
ALTER TABLE Empleados
  ADD CONSTRAINT fk_Cargo_1 FOREIGN KEY (idCargo) REFERENCES Cargos (idCargo),
  ADD CONSTRAINT fk_IdentidadAutorizada FOREIGN KEY (idIdentidadAutorizada) REFERENCES IdentidadAutorizada (idIdentidadAutorizada);

--
-- Filtros para la tabla IdentidadAutorizada
--
ALTER TABLE IdentidadAutorizada
  ADD CONSTRAINT fk_idBodega_1 FOREIGN KEY (idBodega) REFERENCES Bodegas (idBodega);

--
-- Filtros para la tabla Movimientos
--
ALTER TABLE Movimientos
  ADD CONSTRAINT fk_Empleado FOREIGN KEY (idEmpleado) REFERENCES Empleados (idEmpleado),
  ADD CONSTRAINT fk_Productbode FOREIGN KEY (idProductbode) REFERENCES Productbode (idProductbode);

--
-- Filtros para la tabla Productbode
--
ALTER TABLE Productbode
  ADD CONSTRAINT fk_Bodega FOREIGN KEY (idBodega) REFERENCES Bodegas (idBodega),
  ADD CONSTRAINT fk_Producto FOREIGN KEY (idProducto) REFERENCES Productos (idProducto);
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

        

CONSULTAS

            Enumere todos los empleados junto con sus respectivos puestos de trabajo:

            SELECT e.idEmpleado, e.Nombre AS NombreEmpleado, c.Nombre AS Cargo
            FROM tblEmpleados e
            INNER JOIN tblCargos c ON e.idCargo = c.idCargo;
        
            Recupera todos los productos almacenados en un almacén específico junto con sus cantidades:

            SELECT pb.idProductbode, p.NombreP AS NombreProducto, pb.Cantidad
            FROM tblProductbode pb
            INNER JOIN tblProductos p ON pb.idProducto = p.idProducto
            WHERE pb.idBodega = ;
        
            Encuentre el número total de movimientos registrados para un producto en particular:

            SELECT COUNT(*) AS TotalMovimientos
            FROM tblMovimientos m
            INNER JOIN tblProductbode pb ON m.idProductbode = pb.idProductbode
            WHERE pb.idProducto = ;
        
            Enumere todos los movimientos realizados por un empleado específico:

            SELECT m.idMovimiento, m.Fecha, m.Hora, m.Descripción
            FROM tblMovimientos m
            INNER JOIN tblEmpleados e ON m.idEmpleado = e.idEmpleado
            WHERE e.idEmpleado = ;
        
            Recupera todos los almacenes junto con los nombres de las empresas a las que pertenecen:

            SELECT b.idBodega, b.Nombre AS NombreBodega, e.NombreE AS NombreEmpresa
            FROM tblBodegas b
            INNER JOIN tblEmpresas e ON b.idEmpresa = e.idEmpresa;
        
            Encuentre todas las identidades autorizadas para un almacén en particular:

            SELECT ia.idIdentidadAutorizada, e.Nombre AS NombreEmpleado
            FROM tblIdentidadAutorizada ia
            INNER JOIN tblEmpleados e ON ia.idEmpleado = e.idEmpleado
            WHERE ia.idBodega = ;

        
            Enumere todos los productos junto con los almacenes en los que se almacenan:

            SELECT p.idProducto, p.NombreP AS NombreProducto, b.Nombre AS NombreBodega
            FROM tblProductbode pb
            INNER JOIN tblProductos p ON pb.idProducto = p.idProducto
            INNER JOIN tblBodegas b ON pb.idBodega = b.idBodega;
        
            Recuperar todos los movimientos realizados en una fecha específica:

            SELECT *
            FROM tblMovimientos
            WHERE Fecha = 'YYYY-MM-DD';
        
            Encuentre todos los empleados autorizados a acceder a un almacén en particular:

            SELECT e.idEmpleado, e.Nombre AS NombreEmpleado
            FROM tblEmpleados e
            INNER JOIN tblIdentidadAutorizada ia ON e.idIdentidadAutorizada = ia.idIdentidadAutorizada
            WHERE ia.idBodega = ;
        
            Listar todos los productos almacenados en almacenes junto con sus respectivas capacidades:

            SELECT pb.idProductbode, p.NombreP AS NombreProducto, b.Capacidad
            FROM tblProductbode pb
            INNER JOIN tblProductos p ON pb.idProducto = p.idProducto
            INNER JOIN tblBodegas b ON pb.idBodega = b.idBodega;
        
            Encuentre todos los movimientos que involucran un producto específico dentro de un rango de fechas:

            SELECT *
            FROM tblMovimientos m
            INNER JOIN tblProductbode pb ON m.idProductbode = pb.idProductbode
            WHERE pb.idProducto = 
                AND m.Fecha BETWEEN 'start_date' AND 'end_date';
        
            Recuperar todos los movimientos realizados por un empleado específico en una fecha particular:

            SELECT *
            FROM tblMovimientos
            WHERE idEmpleado = 
                AND Fecha = 'YYYY-MM-DD';
        
            Listar todos los productos junto con sus cantidades almacenadas en cada almacén:
            
            SELECT pb.idProductbode, p.NombreP AS NombreProducto, b.Nombre AS NombreBodega, pb.Cantidad
            FROM tblProductbode pb
            INNER JOIN tblProductos p ON pb.idProducto = p.idProducto
            INNER JOIN tblBodegas b ON pb.idBodega = b.idBodega;