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

实验室管理系统数据库代码_实验室废液分类标准实验室设备管理系统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  设备信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 解决Qt程序在Linux下无法输入中文的办法

    解决Qt程序在Linux下无法输入中文的办法

    2021年12月10日
  • VIM写源代码文档

    VIM写源代码文档

  • 二十出头,老气横秋

    有的时候,我们希望年轻人成熟一点,不要巨婴,不要总是等着别人来解救,要自立,要有担当。但有时候吧,发现有些年轻人,似乎过于成熟了,二十来岁的人,感觉怎么就老气横秋的。1、…

  • C语言随堂笔记

    C语言随堂笔记

  • python快速排序法实现

    python快速排序法实现基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。一趟快速排序的算法是:1)设置两个变量i、j,排序开始的时候:i=0,j=N-1;2)以第一个数组元素作为关键数据,赋值给key,即key=A[0];3

    2022年10月31日
  • 男人一辈子就喜欢一种类型的女人,至死不渝从一而终!

    男人一辈子就喜欢一种类型的女人,至死不渝从一而终!台湾某杂志做过一个调查,分四个年轻段对男女的择偶需求作了不同的问卷。发现,女人在不同年龄喜欢的男人差别很大,而男人正好相反,不同年龄的男人对女人的第一需求居然从未改变!18至20岁的女孩最喜欢帅哥;18至20岁的男孩最喜欢跟他年纪差不多或稍大一点的美貌女子。25至28岁的女人最喜欢有一定事业基础、成熟稳重的男人,帅不帅不太重要了;25至28岁的男人最喜欢22至25岁年轻貌美的女子。33…

发表回复

您的电子邮箱地址不会被公开。

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