仓库管理系统

create database Warehouse_management;//建库
use Warehouse_management;

一、建表

1、管理员信息表 

CREATE TABLE ManagerInfo (
  Mno CHAR(3) PRIMARY KEY,
  Mname VARCHAR(10) NOT NULL,
  Mgender CHAR(1) DEFAULT '男',
  Mbirhdate DATE,
  Mtelephone CHAR(11) NOT NULL,
  Mhiredate DATE,
  Wno CHAR(3) NOT NULL
);

 2、仓库信息表

CREATE TABLE WarehouseInfo (
  Wno CHAR(3) PRIMARY KEY,
  Wname VARCHAR(10) NOT NULL,
  Wtype VARCHAR(7),
  Waddress VARCHAR(30),
  Wcharge CHAR(3),
);

3、货品信息表

CREATE TABLE ProductInfo (
  Pno CHAR(8) PRIMARY KEY,
  Pname VARCHAR(30) NOT NULL,
  Ptype VARCHAR(8),
  Pprice FLOAT,
  Punit VARCHAR(10),
  Pweight VARCHAR(10),
  Pmanufacture VARCHAR(30),
  Pguaranteedate VARCHAR(8),
  Wno CHAR(3),
  Pstock INT
);

 4、入库清单表

CREATE TABLE InList (
  Iid INT AUTO_INCREMENT PRIMARY KEY,
  Pno CHAR(8),
  Wno CHAR(3),
  Mno CHAR(3),
  Idate DATE,
  Isupplier VARCHAR(30),
  Iprice FLOAT,
  Inum INT
);

5、出库清单表

CREATE TABLE OutList (
  Oid INT AUTO_INCREMENT PRIMARY KEY,
  Pno CHAR(8),
  Wno CHAR(3),
  Mno CHAR(3),
  Odate DATE,
  Onum INT,
  Odest VARCHAR(30)
);

二、设置外键

alter table ManagerInfo
add constraint fk_manager_warehouse foreign key (Wno) references WarehouseInfo(Wno);

-- 设置管理员表和仓库信息表之间管理员编号的外键约束
alter table WarehouseInfo
add constraint fk_warehouse_manager foreign key (Wcharge) references ManagerInfo(Mno);

-- 设置货品信息表和仓库信息表之间存放仓库编号的外键约束
ALTER TABLE ProductInfo
ADD CONSTRAINT fk_product_warehouse FOREIGN KEY (Wno) REFERENCES WarehouseInfo(Wno);

-- 设置入库清单表和货品信息表之间货品编号的外键约束
ALTER TABLE InList
ADD CONSTRAINT fk_inlist_product FOREIGN KEY (Pno) REFERENCES ProductInfo(Pno);

-- 设置入库清单表和仓库信息表之间仓库编号的外键约束
ALTER TABLE InList
ADD CONSTRAINT fk_inlist_warehouse FOREIGN KEY (Wno) REFERENCES WarehouseInfo(Wno);

-- 设置入库清单表和管理员信息表之间管理员编号的外键约束
ALTER TABLE InList
ADD CONSTRAINT fk_inlist_manager FOREIGN KEY (Mno) REFERENCES ManagerInfo(Mno);

-- 设置出库清单表和货品信息表之间货品编号的外键约束
ALTER TABLE OutList
ADD CONSTRAINT fk_outlist_product FOREIGN KEY (Pno) REFERENCES ProductInfo(Pno);

-- 设置出库清单表和仓库信息表之间仓库编号的外键约束
ALTER TABLE OutList
ADD CONSTRAINT fk_outlist_warehouse FOREIGN KEY (Wno) REFERENCES WarehouseInfo(Wno);

-- 设置出库清单表和管理员信息表之间管理员编号的外键约束
ALTER TABLE OutList
ADD CONSTRAINT fk_outlist_manager FOREIGN KEY (Mno) REFERENCES ManagerInfo(Mno);

三、单表查询

1)查询所有管理员的姓名和联系电话

SELECT Mname, Mtelephone FROM ManagerInfo;

2)查询所有仓库的名称和地址

SELECT Wname, Waddress FROM WarehouseInfo;

3)查询所有产品的名称和价格

SELECT Pname, Pprice FROM ProductInfo;

四、复杂查询

1)查询每个仓库管理员的名字和管理的仓库名称

SELECT MI.Mname, WI.Wname 
FROM ManagerInfo MI
JOIN WarehouseInfo WI ON MI.Wno = WI.Wno;

2)查询所有库存为0的产品

SELECT Pname 
FROM ProductInfo 
WHERE Pstock = 0;

3)查询每个产品的库存数量,要求库存数量超过100的产品排在前面

SELECT Pname, Pstock 
FROM ProductInfo 
ORDER BY Pstock DESC;

五、触发器

1)创建一个在每次插入InList表时自动更新对应产品库存的触发器

DELIMITER //
CREATE TRIGGER UpdateStockAfterIn
AFTER INSERT ON InList
FOR EACH ROW
BEGIN
UPDATE ProductInfo 
SET Pstock = Pstock + NEW.Inum
WHERE Pno = NEW.Pno;
END;
//
DELIMITER ;

2)创建一个在每次删除ManagerInfo表记录时自动删除对应WarehouseInfo表记录的触发器

DELIMITER //
CREATE TRIGGER DeleteWarehouseWhenManagerDeleted
BEFORE DELETE ON ManagerInfo
FOR EACH ROW
BEGIN
DELETE FROM WarehouseInfo WHERE Wcharge = OLD.Mno;
END;
//
DELIMITER ;

3)创建一个在每次插入OutList表时自动计算并更新对应产品库存的触发器

DELIMITER //
CREATE TRIGGER UpdateStockAfterOut
AFTER INSERT ON OutList
FOR EACH ROW
BEGIN
UPDATE ProductInfo 
SET Pstock = Pstock - NEW.Onum
WHERE Pno = NEW.Pno;
END;
//
DELIMITER ;

六、存储过程

创建一个存储过程用于添加新产品

DELIMITER //
CREATE PROCEDURE AddProduct(IN p_name VARCHAR(30), IN p_type VARCHAR(8), IN p_price FLOAT, IN p_unit VARCHAR(10), 
                             IN p_weight VARCHAR(10), IN p_manufacture VARCHAR(30), IN p_guaranteedate VARCHAR(8), 
                             IN p_stock INT, IN p_warehouse CHAR(3))
BEGIN
INSERT INTO ProductInfo(Pname, Ptype, Pprice, Punit, Pweight, Pmanufacture, Pguaranteedate, Wno, Pstock) 
VALUES (p_name, p_type, p_price, p_unit, p_weight, p_manufacture, p_guaranteedate, p_warehouse, p_stock);
END;
//
DELIMITER ;

创建一个存储过程用于列出所有产品

DELIMITER //
CREATE PROCEDURE ListAllProducts()
BEGIN
SELECT * FROM ProductInfo;
END;
//
DELIMITER ;

创建一个存储过程用于检查某个产品的库存

DELIMITER //
CREATE PROCEDURE CheckProductStock(IN p_no CHAR(8))
BEGIN
SELECT Pstock FROM ProductInfo WHERE Pno = p_no;
END;

七、视图

查询每个仓库的库存总价值

CREATE VIEW WarehouseInventoryValue AS
SELECT WI.Wname, SUM(PI.Pprice * IL.Inum) AS TotalInventoryValue
FROM WarehouseInfo WI
JOIN ProductInfo PI ON WI.Wno = PI.Wno
JOIN InList IL ON PI.Pno = IL.Pno
GROUP BY WI.Wname;

总(表+外键)

CREATE TABLE ManagerInfo (
  Mno CHAR(3) PRIMARY KEY,
  Mname VARCHAR(10) NOT NULL,
  Mgender CHAR(1) DEFAULT '男',
  Mbirhdate DATE,
  Mtelephone CHAR(11) NOT NULL,
  Mhiredate DATE,
  Wno CHAR(3) NOT NULL
);


CREATE TABLE WarehouseInfo (
  Wno CHAR(3) PRIMARY KEY,
  Wname VARCHAR(10) NOT NULL,
  Wtype VARCHAR(7),
  Waddress VARCHAR(30),
  Wcharge CHAR(3)
);

CREATE TABLE ProductInfo (
  Pno CHAR(8) PRIMARY KEY,
  Pname VARCHAR(30) NOT NULL,
  Ptype VARCHAR(8),
  Pprice FLOAT,
  Punit VARCHAR(10),
  Pweight VARCHAR(10),
  Pmanufacture VARCHAR(30),
  Pguaranteedate VARCHAR(8),
  Wno CHAR(3),
  Pstock INT
);
CREATE TABLE InList (
  Iid INT AUTO_INCREMENT PRIMARY KEY,
  Pno CHAR(8),
  Wno CHAR(3),
  Mno CHAR(3),
  Idate DATE,
  Isupplier VARCHAR(30),
  Iprice FLOAT,
  Inum INT
);

CREATE TABLE OutList (
  Oid INT AUTO_INCREMENT PRIMARY KEY,
  Pno CHAR(8),
  Wno CHAR(3),
  Mno CHAR(3),
  Odate DATE,
  Onum INT,
  Odest VARCHAR(30)
);


alter table ManagerInfo
add constraint fk_manager_warehouse foreign key (Wno) references WarehouseInfo(Wno);

-- 设置管理员表和仓库信息表之间管理员编号的外键约束
alter table WarehouseInfo
add constraint fk_warehouse_manager foreign key (Wcharge) references ManagerInfo(Mno);

-- 设置货品信息表和仓库信息表之间存放仓库编号的外键约束
ALTER TABLE ProductInfo
ADD CONSTRAINT fk_product_warehouse FOREIGN KEY (Wno) REFERENCES WarehouseInfo(Wno);

-- 设置入库清单表和货品信息表之间货品编号的外键约束
ALTER TABLE InList
ADD CONSTRAINT fk_inlist_product FOREIGN KEY (Pno) REFERENCES ProductInfo(Pno);

-- 设置入库清单表和仓库信息表之间仓库编号的外键约束
ALTER TABLE InList
ADD CONSTRAINT fk_inlist_warehouse FOREIGN KEY (Wno) REFERENCES WarehouseInfo(Wno);

-- 设置入库清单表和管理员信息表之间管理员编号的外键约束
ALTER TABLE InList
ADD CONSTRAINT fk_inlist_manager FOREIGN KEY (Mno) REFERENCES ManagerInfo(Mno);

-- 设置出库清单表和货品信息表之间货品编号的外键约束
ALTER TABLE OutList
ADD CONSTRAINT fk_outlist_product FOREIGN KEY (Pno) REFERENCES ProductInfo(Pno);

-- 设置出库清单表和仓库信息表之间仓库编号的外键约束
ALTER TABLE OutList
ADD CONSTRAINT fk_outlist_warehouse FOREIGN KEY (Wno) REFERENCES WarehouseInfo(Wno);

-- 设置出库清单表和管理员信息表之间管理员编号的外键约束
ALTER TABLE OutList
ADD CONSTRAINT fk_outlist_manager FOREIGN KEY (Mno) REFERENCES ManagerInfo(Mno);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/772717.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据预处理:统计关联性分析/数据清洗/数据增强/特征工程实例

专栏介绍 1.专栏面向零基础或基础较差的机器学习入门的读者朋友,旨在利用实际代码案例和通俗化文字说明,使读者朋友快速上手机器学习及其相关知识体系。 2.专栏内容上包括数据采集、数据读写、数据预处理、分类\回归\聚类算法、可视化等技术。 3.需要强调的是,专栏仅介绍主…

C++(第四天----拷贝函数、类的组合、类的继承)

一、拷贝构造函数(复制构造函数) 1、概念 拷贝构造函数,它只有一个参数,参数类型是本类的引用。如果类的设计者不写拷贝构造函数,编译器就会自动生成拷贝构造函数。大多数情况下,其作用是实现从源对象到目…

Access,Trunk,Hybrid网络设备链接类型详解

带着问题找答案:网络链路上的数据包怎么看,是否携带vlan-id如何看,以及如何设计链接类型满足用户要求,请看如下解析。 第一种:链接类型access 无标记数据帧 第二种:链接类型trunk 第三种&#xf…

最新mysql打开远程访问和修改最大连接数

这里写目录标题 1.使用navicat进入命令控制板,进入use mysql;2.查询用户表3.更新user表中root用户域属性,%表示允许外部访问4.执行以上语句之后再执行,FLUSH PRIVILEGES;5. 执行授权语句修改最大连接数 1.使用navicat进入命令控制板,进入use mysql; use…

为什么写Python脚本时要加上if __name__ == ‘__main__‘?

目录 一、__name__ 的秘密 二、if __name__ __main__: 的作用 三、代码示例与案例分析 示例一:简单的数学工具模块 示例二:命令行工具 四、实际应用场景 五、进阶应用 1. 插件开发 2. 动态加载模块 3. 交互式与脚本模式切换 六、结论 在Pyth…

电商API对接流程丨从零开始快速打通电商平台数据通道

开发电商业务管理系统时,怎么对接电商接口呢?有两种方式可供选择,一种方式就是自己入驻想要对接的电商平台对应的开放平台,按照要求与流程与电商接口进行对接,还有一种方式就是寻找电商中台,通过第三方接口…

吴恩达深度学习笔记:机器学习策略(2)(ML Strategy (2)) 2.5-2.6

目录 第三门课 结构化机器学习项目(Structuring Machine Learning Projects)第二周:机器学习策略(2)(ML Strategy (2))2.5 数据分布不匹配时的偏差与方差的分析(Bias and Variance with mismatched data di…

玩机进阶教程----MTK芯片杂牌机 小品牌机型解除bl锁以及root的操作步骤解析

在玩机过程中会遇到很多小品牌机型或者杂牌机类的。大多都使用mtk芯片。而且基本很少有官方线刷包。在这些机型中玩机首先我们要想办法导出系统来制作线刷包。以免后续解锁bl或者root出现未知故障可以恢复原系统。 那么对于这些机型该如何进行备份固件和root呢。通过博文可以初…

选微调、RAG还是微调+RAG?

RAG技术是一种结合了检索与生成的方法。它通常依赖于两个核心组件:一个大型语言模型(如GPT-3)和一个检索系统(如向量数据库)。RAG先使用检索系统从大量数据中检索出相关信息,然后将这些信息提供给语言模型&…

一文带你看懂什么是营销归因模型及SaaS企业的应用

在数字化时代,营销活动的多样性和复杂性使得评估其效果成为一项挑战。营销归因模型应运而生,为SaaS企业等提供了科学、系统的评估工具。本文将简要介绍什么是营销归因模型,阐述其带来的好处,并探讨SaaS企业可以采用的营销归因系统…

编译rust程序,并让它依赖低版本的GLIBC库

在linux环境下编译rust程序,编译好的程序会依赖你当前系统的GLIBC库,也就是说你的程序无法在使用更低版本GLIBC库的linux系统中运行。 查看当前系统的GLIBC版本: strings /lib64/libc.so.6 | grep GLIBC 为了让编译的程序依赖比较低版本的GL…

通过 Power Automate 以提升的权限运行 Power Apps 连接

使用Power Apps在Sharepoint列表中新建或编辑项比较简单,就是创建窗体,连接Sharepoint列表,添加个按钮,触发条件为Submit(form)。 填写信息,点击按钮即可新建项 但使用过程中,发现运行此应用的用户&#xf…

mac 11 变编译安装nginx

mac 11 变编译安装nginx 记录一次安装过程 所需要的包 pcre: https://sourceforge.net/projects/pcre/files/pcre/OpenSSL: https://www.openssl.org/source/Nginx: https://nginx.org/en/download.html如果没有pcre 和Openssl,报错如下 把pcre和Openssl 解压到nginx 目录下…

MySQL数据库的备份-恢复-日志

一、备份 1.1数据备份的重要性 备份的主要目的是灾难恢复。 在生产环境中,数据的安全性至关重要。 任何数据的丢失都可能产生严重的后果。 1.2造成数据丢失的原因 程序错误人为操作错误运算错误磁盘故障灾难(如火灾、地震)和盗窃 1.3数…

Altium Designer专业PCB设计软件下载安装 Altium Designer安装包下载获取

在电子设计的广袤领域中,PCB设计无疑占据着重要的地位。而Altium Designer作为一款业界领先的电子设计自动化软件,其提供的先进布局工具,无疑为设计师们打开了一扇通往高效、精确设计的大门。 在PCB设计的核心环节——布局中,Alti…

【苍穹外卖】Day1遇到的问题

1、lombok版本不兼容问题 java: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module 0x3278991b) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.comp…

文心一言 VS 讯飞星火 VS chatgpt (295)-- 算法导论21.4 4题

四、利用练习 21.4-2 ,请给出一个简单的证明,证明在一个不相交集合森林上使用按秩合并策略而不使用路径压缩策略的运行时间为 O(m lgn) 。21.4-2 的内容是:“证明:每个结点的秩最多为 ⌊lgn⌋ 。”。如果要写代码,请用…

CenterOS7安装java

CenterOS7安装java #进入安装目录 cd /usr/local/soft/java#wget下载java8 #直接进入官网选择相应的版本进行下载,然后把下载链接复制下来就可以下载了 #不时间的下载链接不一样 wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c9…

Java的编程之旅46——List集合

1.List集合的特殊方法 List接口是Collection接口的子接口&#xff0c;提供了一系列操作元素的方法。 常见的List集合实现类有ArrayList和LinkedList。ArrayList我们在前面已经介绍过了&#xff0c;这一章中着重介绍一下List集合的特有方法。 List<String> list new Arr…

第3章.中央服务器的物联网模式--规则引擎

规则引擎 规则引擎本质上是物联网事件和需要与这些事件相关联的动作之间的映射。在物联网环境中&#xff0c;事件通常使用传感器生成&#xff0c;所需的动作由执行器采取。本书中用于该图案的符号如下图所示&#xff1a; 图3.6–“规则引擎”模式的符号 一个有趣的类比是将规则…