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;