ImageVerifierCode 换一换
格式:DOCX , 页数:38 ,大小:119.69KB ,
资源ID:21287517      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21287517.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据库课程设计报告 附存储过程和触发器模版+数据库脚本文档模版+分析及er图Word文件下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据库课程设计报告 附存储过程和触发器模版+数据库脚本文档模版+分析及er图Word文件下载.docx

1、 图1.ER图3. 物理设计2.1 数据表设计 图2.表结构图2.2 创建表脚本2.2.1 【用户表】(1)创建表语句create table ADMIN( ACCOUNT char(20) not null, CIPHER char(20) , primary key (ACCOUNT);(2)插入测试数据语句insert into admin values(12201504,123452.2.2 【商品表】create table SP SCODE char(20) not null, SNAME char(20) not null, STAPE char(20) , SPLACE cha

2、r(20) , primary key (SCODE)insert into sp values(1乐事薯片食物广东2牛肉干3瓜子干果4可乐饮料5雪碧2.2.3 【仓库表】create table CK CCODE char(20) not null, CNAME char(20) , CADDRESS char(20) , primary key (CCODE)insert into ck values(南昌仓库南昌长沙仓库长沙武汉仓库武汉2.2.4 【入库表】create table INPUT N int not null, SCODE char(20) , CCODE char(20)

3、 , INNUMBER int , INTIME datetime , INREASON char(20) , primary key (N), foreign key (scode) references sp(scode), foreign key (ccode) references ck(ccode)insert into input values(10002014-6-10进货1002014-6-11退货3002002014-6-122.2.5 【仓库管理员表】create table WORKER WCODE char(20) not null, WNAME char(20) ,

4、WPOSITION char(20) , primary key (WCODE),insert into worker values(11奥巴马员工12奥特曼仓库经理13奥利奥仓库副经理21汤姆克鲁斯22小罗伯特唐尼23尼古拉斯凯奇31大螺丝32伊瑟拉33安东尼达斯2.2.6 【销售日志表】create table SALE SNUMBER int , SMONEY float(20) , STIME datetime , foreign key (scode) references sp(scode)insert into sale values(2505002.2.7 【库存表】creat

5、e table STORENUMCCODE char(20) ,SCODE char(20) , TOTALNUM int , foreign key (ccode) references ck(ccode),foreign key (scode) references sp(scode)insert into storenum values(50004. 功能实现4.1 查询及视图设计 4.1.1商品信息查询(1)主要功能: 根据商品编号查询商品全部信息(2)查询设计:select * from sp where scode=1; 4.1.2仓库信息查询 根据仓库编号查询仓库全部信息sele

6、ct * from ck where ccode=2;4.1.3商品销售情况查询根据商品编号查询商品销售情况全部信息select * from sale where scode=1;4.1.4仓库管理员信息查询根据管理员编号查询仓库管理员全部信息select * from worker where wcode=12;4.1.5入库信息根据编号查询根据入库时的顺序编号查询入库的全部信息select * from input where n=1;4.1.6入库信息根据入库时间及商品编号查询根据入库时间及商品的编号查询入库的全部信息select * from input where intime=2

7、014-6-11,scode=2;4.1.7仓库全部商品库存信息查询根据仓库编号查询该仓库的全部商品库存信息select * from storenum where ccode=1;4.1.8查询某地生产的商品在某地仓库中的库存信息查询南昌生产的商品在武汉仓库中的库存信息select * from storenum where ccode in (select ccode from ck where caddress=) and scode in (select scode from sp where splace=4.1.9查询库存量超过制定数额的商品名称及仓库地址查询库存量超过1000的商

8、品名称及仓库地址select sname,caddress from ck,sp,storenum where ck.ccode=storenum.ccode and sp.scode=storenum.scode and totalnum1000;4.1.10查询存储某地生产的全部商品的仓库信息查询存储南昌生产的全部商品的仓库信息select * from ck where not exists(select * from sp where splace=南昌 and not exists(select * from storenum where storenum.scode=sp.scod

9、e);4.1.11查询某地仓库中的员工总数查询南昌仓库中的员工总数select count(*) from worker where ccode in (select ccode from ck where caddress=4.1.12统计因进货而入库的的商品信息并按它们的进货数量升序排列统计因进货而入库的的商品信息并按它们的进货数量升序排列select * from input where inreason= order by innumber;4.2 存储过程设计4.2.1 input_input 商品退回或进货时,向入库表中插入信息(2)参数说明:序号参数名称及数据类型(英文名称)参数

10、含义及说明1n int顺序号(主键)2scode char(20)商品号3ccode char(20)仓库号4innumber int入库数量5intime datetime入库时间6inreason char(20)入库原因(3)流程描述声明变量接收数据并将全部数据插入入库表中(4)代码及注释create procedure input_input(n int,scode char(20),ccode char(20),innumber int,intime datetime,inreason char(20)as insert into input values(n,scode,ccode

11、,innumber,intime,inreason);4.2.2 drop_sale 商品退货时,根据顺序号可删除销售日志中的记录销售日志表中的顺序号(主键)输入接收顺序号,并根据顺序号删除销售日志中的该行信息create procedure drop_sale(n int) delete from sale where n=n;4.2.3 cipher_admin 修改该系统用户的密码ACCOUNT char(20)用户账号CIPHER char(20)用户新密码根据输入的用户账号,使用新密码更新该账号的旧密码create procedure change_admin(ACCOUNT cha

12、r(20),CIPHER char(20) update admin set cipher=cipher where account=account;4.2.4 storenum_sp 查询某地生产的商品在某地仓库中的库存信息splace char(20)商品产地caddress char(20)仓库地址1. 输入并接收商品产地和仓库地址2. 使用select语句根据商品产地和仓库地址找出商品号,仓库号并输出与商品号,库存号相同的全部库存信息create procedure storenum_sp(splace char(20),caddress char(20)asselect * from

13、 storenum where ccode in (select ccode from ck where caddress=caddress) and scode in (select scode from sp where splace=splace);4.2.5 totalnum_caddress 查询库存量超过3000的商品名称及仓库地址无无参数及返回值将三张表进行连接,并筛选出库存量大于3000的条目,输出其全部信息create procedure totalnum_caddress where ck.ccode=storenum.ccode and sp.scode=storenum

14、.scode and totalnum30004.2.6 ck_splace 查询存储某地生产的全部商品的仓库信息使用select语句,根据输入的商品产地,找出某一个仓库,不存在一个商品的产地是该商品产地,这个商品没有被这个仓库储存,并输出这个仓库的全部信息create procedure ck_splace(splace char(20)select * from ck where not exists(select * from sp where splace=splace and not exists(select * from storenum where storenum.scode

15、=sp.scode);4.3 触发器设计4.3.1 触发器1(1)简介触发器名称:in_storenum监听的表名:Storenum /库存监听的操作类型:Insert功能描述:商品入库时,更新该商品库存量,若库存中没有该商品,则添加其商品信息入库存表(2)详细操作流程【详细说明该存储过程的操作过程,可以用伪代码、流程图或自然语言】1. 声明标量接收inserted表中的商品号,仓库号,入库数量2. 找出库存表中最大的顺序号(主键),加一后用标量n接收3. 用select语句找出库存表中是否存在需入库的该商品信息4. 判断若存在该商品,则库存量加上入库数量5. 若不存在,则插入该商品信息,库存

16、量存储为入库数量(3)代码及注释create trigger in_storenum on inputfor insert as declare scode char(20),ccode char(20),innumber int,a int,max_n intselect scode=scode,ccode=ccode,innumber=innumber from insertedselect a=count(*) from storenum where scode=scode and ccode=ccodeif a update storenum set totalnum=totalnum

17、+innumber where scode=scode and ccode=ccodeelsebegin select max_n=max(n) from storenum insert into storenum values(max_n+1,ccode,scode,innumber)end;4.3.2 触发器2de_storenumSale /销售日志商品售出而在销售日志中插入出售记录时,更新库存,使库存中的商品数量减少出售的数量1. 声明变量从inserted表中接收商品号,出售数量2. 更新库存表,使得该商品库存量减少出售数量create trigger de_storenum on

18、saledeclare scode char(20),snumber intselect scode=scode,snumber=snumber from insertedupdate storenum set totalnum=totalnum-snumber where scode=scode;4.3.3 触发器1storenum_totalnumStorenum /库存表Update当更新库存表时,监控商品的库存总量,若库存总量超过5000时,提示存入量超标,任意商品存储量应小于5000!并回滚操作取消之前的更新操作1. 声明变量从inserted表中接收库存总量2. 判断该库存总量是否

19、大于50003. 若大于5000,则提示文字,并回滚操作create trigger storenum_totalnum on storenumfor update asdeclare totalnum intselect totalnum=totalnum from insertedif totalnum=5000begin print() rollback transaction4.3.4 触发器1change_sale_nSale /销售日志(该触发器也修改并使用在入库表和库存表中)当向销售日志表插入数据,顺序号(主键)与表中的末尾顺序号不连接时,自动修改成连接的数字(该触发器也修改并使用在入库表和库存表中)1. 声明变量接收inserted表中的需要插入顺序号2. 数出从销售日志中的总行数并赋值给变量old_n3. 将总行数old_n赋值给刚插入那一行的顺序号create trigger change_sale_n on salefor insert asdeclare new_n int,old_n intselect new_n=n from insertedselect old_n=coun

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1