实验室管理系统数据库代码_实验室废液分类标准

实验室管理系统数据库代码_实验室废液分类标准实验室设备管理系统SQL代码课程设计时的SQL代码,不是很完整,仅供参考。完整的实验室设备管理系统设计代码包括界面设计(使用的是C#)上传到了我的资源中。***界面截图***createdatabase实验室设备管理系统onprimary( name=’实验室设备管理_data’, filename=’E:\SqlServerData\实验室设备管理系统\实验室设备管理_data.mdf’, size=5MB, maxsize=100MB, filegrow

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

实验室设备管理系统SQL代码

课程设计时的SQL代码,不是很完整,仅供参考。
完整的实验室设备管理系统设计代码包括界面设计(使用的是C#)上传到了我的资源中点此跳转修改数据源xml配置点击跳转
以 C#+VS2019 作为开发环境, 采用 SqlServer 作为后台数据库管理系统, 开发了一款基于 C / S 结构的实验室设备管理系统。该系统分为管理员功能模块、 普通用户功能模块和设备维护员三个部分。
管理员模块实现用户信息管理、设备类别、信息、 购买、维修、报废管理等功能;普通用户模块实现借用申请、申请结果查看、借用历史查询等功能。
***界面截图 ***
在这里插入图片描述
在这里插入图片描述

create database 实验室设备管理系统
on
primary
(
	name = '实验室设备管理_data',
	filename = 'E:\SqlServerData\实验室设备管理系统\实验室设备管理_data.mdf',
	size = 5MB,
	maxsize = 100MB,
	filegrowth = 5%
)
log on
(
	name = '实验室设备管理_log',
	filename = 'E:\SqlServerData\实验室设备管理系统\实验室设备管理_log.ldf',
	size = 5MB,
	maxsize = 100MB,
	filegrowth = 5%
)

use 实验室设备管理系统

create table 用户
(
	用户ID char(8) primary key,
	用户名 nvarchar(10) not null,
	用户密码 varchar(16) not null,
	用户权限 int not null check (用户权限 <=3 and 用户权限 >= 1)
)


alter table 用户 drop 用户权限
alter table 用户 add 用户权限 int not null check (用户权限 <=3 and 用户权限 >= 0)
alter table 用户 add 电话 char(11) unique not null

create table 设备信息
(
	设备编号 char(8) primary key,
	设备名称 nvarchar(20) unique not null,
	型号 nvarchar(10),
	类别 nvarchar(5) default '计算机' check(类别 in('计算机','生物','物理','化学')), 
	规格 nvarchar(10),
	总数量 int check(总数量>=0),
	当前剩余数量 int check(当前剩余数量 >=0 ),
	生产厂家 nvarchar(10) not null
)
drop table 购买设备信息
create table 购买设备信息
(
	购买ID int primary key identity(1,1),
	设备编号 char(8) ,
	实验室编号 char(8),
	设备名称 nvarchar(20) unique not null,
	型号 nvarchar(10),
	类别 nvarchar(5) default '计算机' check(类别 in('计算机','生物','物理','化学')), 
	购买日期 datetime default(getdate()) not null,
	规格 nvarchar(10),
	数量 int check(数量>=0),
	单价 money not null,
	购买人 nvarchar(10) not null,
	生产厂家 nvarchar(10) not null,

	foreign key(设备编号) references 设备信息(设备编号),
	foreign key(实验室编号) references 实验室(实验室编号),
)

create table 实验室
(
	实验室编号 char(8) primary key,
	实验室名称 nvarchar(10) unique not null,
	实验室地址 nvarchar(10) unique not null

)

create table 设备详细编号
(
	设备编号 char(8) ,
	设备ID   char(8) ,
	实验室编号 char(8),
	设备情况 nvarchar(5) default '正常' check(设备情况 in('正常','维修','报废'))
	primary key (设备编号,设备ID),
	foreign key (设备编号) references 设备信息(设备编号),
	foreign key (实验室编号) references 实验室(实验室编号),
)

alter  table 设备详细编号 add 设备情况 nvarchar(5) default '正常' check(设备情况 in('正常','维修','报废'))
update 设备详细编号 set 设备情况='正常'


drop table 报修 
create table 报修
(
	报修ID int primary key identity(1,1),
	设备编号 char(8) ,
	设备ID   char(8) ,
	报修原因 nvarchar(30),
	报修日期 datetime default(getdate()) not null,
	维修日期 datetime ,
	维修人员 nvarchar(10),
	维修费用 money,
	是否修复 bit default 0,
	
	foreign key(设备编号,设备ID) references 设备详细编号(设备编号,设备ID),
)

create table 报废
(
	报废ID int primary key identity(1,1),
	设备编号 char(8) ,
	设备ID   char(8) ,
	报废原因 nvarchar(30),
	报废日期 datetime default(getdate()) not null,
	报废人员 nvarchar(10) not null,
	
	foreign key(设备编号,设备ID) references 设备详细编号(设备编号,设备ID),
)

create trigger 购买设备
on 购买设备信息
instead of insert
as
begin
--设备信息表的插入变量
	declare @EquipmentID as char(8)
	declare @LaboratoryID as char(8)
	declare @EquipmentName as nvarchar(20)
	declare @Model as nvarchar(10)
	declare @type as nvarchar(10)
	declare @guige as nvarchar(10)
	declare @count as int
	declare @maker as nvarchar(20)
--设备大小号插入变量
	declare @pre_count as int
	declare @now_count as int

	select @EquipmentID=inserted.设备编号,@LaboratoryID=inserted.实验室编号,@EquipmentName=inserted.设备名称,@Model=inserted.型号,@type=inserted.类别,@guige=inserted.规格,@count=inserted.数量,@maker=inserted.生产厂家 from inserted

	if not exists(select * from 设备信息 where @EquipmentID=设备编号)
	begin
		insert into 设备信息(设备编号,设备名称,型号,类别,规格,总数量,当前剩余数量,生产厂家) values(@EquipmentID,@EquipmentName,@Model,@type,@guige,@count,@count,@maker)
	end
	else
	begin
		update 设备信息 set 总数量=总数量+@count,当前剩余数量=当前剩余数量+@count where @EquipmentID=设备编号
	end

	select @pre_count=count(*) from 设备详细编号 where @EquipmentID=设备详细编号.设备编号
	set @now_count=@pre_count+@count
	set @pre_count=@pre_count+1
	while @pre_count<=@now_count
	begin
		insert into 设备详细编号(设备编号,设备ID,实验室编号) values(@EquipmentID,@pre_count,@LaboratoryID)
		set @pre_count = @pre_count+1
	end

	insert into 购买设备信息(设备编号,实验室编号,设备名称,型号,类别,购买日期,规格,数量,单价,购买人,生产厂家) select 设备编号,实验室编号,设备名称,型号,类别,购买日期,规格,数量,单价,购买人,生产厂家 from inserted

end


alter trigger 报修操作
on 报修
after insert
as
begin
	declare @EquipmentID as char(8)
	declare @EquipmentID2 as char(8)

	select @EquipmentID=inserted.设备编号,@EquipmentID2=inserted.设备ID from inserted

	update 设备详细编号 set 设备情况='维修' where @EquipmentID=设备编号 and @EquipmentID2=设备ID
	update 设备信息 set 当前剩余数量=当前剩余数量-1 where @EquipmentID=设备编号

end

--select * from 报修
--select * from 报废
--select * from 设备信息
--select * from 设备详细编号
drop trigger 报废操作
create trigger 报废操作
on 报废
after insert
as
begin
	
	declare @EquipmentID as char(8)
	declare @EquipmentID2 as char(8)

	select @EquipmentID=inserted.设备编号,@EquipmentID2=inserted.设备ID from inserted
	if '正常'=(select 设备情况 from 设备详细编号 where @EquipmentID=设备编号 and @EquipmentID2=设备ID)
	begin
		update 设备信息 set 当前剩余数量=当前剩余数量-1 where @EquipmentID=设备编号
	end
	update 设备详细编号 set 设备情况='报废' where @EquipmentID=设备编号 and @EquipmentID2=设备ID

end

alter trigger 设备借用
on 设备详细编号
after update
as
begin
	declare @EquipmentID as char(8)
	declare @EquipmentState as nvarchar(5)
	
	select @EquipmentID=inserted.设备编号,@EquipmentState=inserted.设备情况 from inserted
	if @EquipmentState='使用中'
	begin
	update 设备信息 set 当前剩余数量=当前剩余数量-1 where @EquipmentID=设备编号
	end
	if @EquipmentState='正常'
	begin
	update 设备信息 set 当前剩余数量=当前剩余数量+1 where @EquipmentID=设备编号
	end
end

select * from 设备详细编号  and 设备情况='正常'

select s1.设备编号,s1.设备ID,s1.实验室编号,s2.设备名称 from 设备详细编号 as s1 join 设备信息 as s2 on s1.设备编号=s2.设备编号 where s1.用户ID = '20180002'

select s1.设备编号,s1.设备ID,s2.设备名称,s2.类别,s2.生产厂家,s1.报修原因,s1.报修日期 from 报修 as s1 join 设备信息 as s2 on s1.设备编号=s2.设备编号
where s1.是否修复=0

alter trigger 修理完成
on 报修
after update
as
begin
	declare @EquipmentID as char(8)--大号
	declare @EquipemntNo as char(8)--小号
	
	select @EquipmentID=inserted.设备编号,@EquipemntNo=inserted.设备ID from inserted

	update 设备信息 set 当前剩余数量=当前剩余数量+1 where @EquipmentID=设备编号
	update 设备详细编号 set 设备情况='正常' where @EquipmentID=设备编号 and @EquipemntNo=设备ID


end

update 报修 set 维修日期=GETDATE(),维修人员='',维修费用='',是否修复=1 where 设备编号='' and 设备ID=''

select s1.报修ID,s1.设备编号,s1.设备ID,s2.设备名称,s1.报修日期,s1.维修日期,s1.维修费用,s1.报修原因 from 报修 as s1 join 设备信息 as s2 on s1.设备编号=s2.设备编号 where s1.是否修复=1 and 维修人员='赵一'

select * from 用户 where 用户权限<>'1'

delete  报修
delete  报废
delete  购买设备信息
delete  设备详细编号
delete  设备信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182290.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【JavaScript】document对象_Cookie属性「建议收藏」

    【JavaScript】document对象_Cookie属性「建议收藏」Cookie是什么?借助document的cookie属性,Javascript程序就可以实现与www服务器一样的cookie功能,即获取当前的cookie信息和产生一个新的cookie。一个浏览器访问www服务器的每个网页文件,都是独立的,每个网页的javascript程序之间的信息也不能共享。即使是同一个网页的上一次访问和下一次访问之间也无法传递数据。同一张网页

    2022年7月27日
    6
  • C++:cstdio 头文件详解

    C++:cstdio 头文件详解&lt;cstdio&gt;(stdio.h)headerC库执行输入/输出操作:输入和输出操作也可以在C++实现,通过使用C标准输入和输出库(cstdio,在C语言中称为stdio.h)。这个库使用流来操作物理设备如键盘,打印机,终端或者系统支持的任何其他类型的文件。流是一种以统一的方式与这些交互的抽象; 所有流都具有相似的属性,与它们所关联的物理介质的各个特征无关。流…

    2022年10月23日
    0
  • Esp8266学习之旅① 搭建开发环境,开始一个“hellow world”串口打印。

    Esp8266学习之旅① 搭建开发环境,开始一个“hellow world”串口打印。本系列博客学习由非官方人员半颗心脏潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时更改。1、Esp8266之搭建开发环境,开始一个“hellowworld”串口打印。2、Esp8266之利用GPIO开始使用按钮点亮你的“第一盏灯”。3、Esp8266之利用“软件定时器”定时0.5秒闪烁点亮一盏LED。4、Esp8266之了解P

    2022年5月30日
    54
  • c++和java哪个好学_选 Python 还是 Java ?[通俗易懂]

    c++和java哪个好学_选 Python 还是 Java ?[通俗易懂]对于在校学生,以及要转行学编程的,把一门语言熟悉起来,非常的重要。对于初学编程,以及想要转行到编程领域的人来说,总有这么一个选择,选C++、Python、还是Java好呢?哪个前景更好、哪个好学、哪个好找工作,等等这类问题。熟悉我的都知道,我是从LinuxC/C++后台开发,转行到算法工程师,在大四实习的时候,做过Go开发,大四下做毕设的时候,用过Java、以及前端一些技术;相对…

    2022年7月7日
    25
  • 恐怖的vs2005 sp1安装过程.[通俗易懂]

    恐怖的vs2005 sp1安装过程.[通俗易懂]今天刚把这个400多M的sp1从公司拷回来,算计着这样可以省掉不少下载时间.可是,可是,竟然没有想到,安装过程是如此的恐怖.首先,我的C盘空间明显的感到害羞,只有1.5G的剩余空间了,赶

    2022年7月2日
    23
  • phpstorm激活码2021.12.13【2021最新】

    (phpstorm激活码2021.12.13)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/ide…

    2022年3月30日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号