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

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

            SELECT e.idEmpleado, e.Nombre AS NombreEmpleado, c.Cargo AS Cargo 
            FROM tblEmpleados e INNER JOIN tblCargos c ON e.idCargo = c.idCargo 
            ORDER BY e.idEmpleado ASC;
        
            2. 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 = ;
        
            3. Encuentre el número total de movimientos registrados para un producto en particular:

            SELECT p.NombreP AS NombreProducto, COUNT(m.idMovimiento) AS TotalMovimientos
            FROM ProyectMedia.tblMovimientos m
            INNER JOIN ProyectMedia.tblProductbode pb ON m.idProductbode = pb.idProductbode
            INNER JOIN ProyectMedia.tblProductos p ON pb.idProducto = p.idProducto
            WHERE p.idProducto = ;
        
            4. 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 = ;
        
            5. 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;
        
            6. 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;
        
            7. Recuperar todos los movimientos realizados en una fecha específica:

            SELECT *
            FROM tblMovimientos
            WHERE Fecha = 'YYYY-MM-DD';
        
            8. 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;
        
            9. Encuentre todos los movimientos que involucran un producto específico dentro de un rango de fechas:

            SELECT m.idMovimiento, m.idProductbode, m.Fecha
            FROM tblMovimientos m
            INNER JOIN tblProductbode pb ON m.idProductbode = pb.idProductbode
            WHERE pb.idProducto = 123
            AND m.Fecha BETWEEN 'YYYY-MM-DD' AND 'YYYY-MM-DD';

        
            10. Recuperar todos los movimientos realizados por un empleado específico en una fecha particular:

            SELECT *
            FROM tblMovimientos
            WHERE idEmpleado = 
                AND Fecha = 'YYYY-MM-DD';
        
            11. 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;