图书共享的设计解析Word下载.docx
- 文档编号:17046067
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:18
- 大小:516.28KB
图书共享的设计解析Word下载.docx
《图书共享的设计解析Word下载.docx》由会员分享,可在线阅读,更多相关《图书共享的设计解析Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
每次增加5MB
最大数据容量:
不受限
是否自动收缩:
是否是只读数据库:
否
事务日志文件位置:
f:
\classbookcorner
事务日志文件初始大小:
1MB
事务日志文件最大数据容量:
20MB
创建如下数据表:
学生表
表名
student
作用
学生信息
列名
数据类型
长度
是否允许为空
字段说明
sno
varchar
20
主键,学号
sname
50
学生姓名
ssex
char
10
性别
spnum
联系电话
图书表
book
图书信息
bno
主键,图书标号
bname
书名
bauthor
作者
bsl
Int
4
数量
btype
图书类型
bsituation
100
污损情况
brenew
bit
1
续借情况,1(可续借),0(不可续借)
借阅表
borrow
借阅信息
bnumber
外键,引用book表中的主键bno
Bnumber与snumber共同为主键
snumber
外键,引用student表中主键sno
btime
datetime
8
借阅时间
brtime
归还时间
bqk
float
超过归还时间,每天0.1元,欠款为1,
不欠款为0
bxj
int
续借次数
bkj
是否可借(1为可借。
0为不可借)
捐书表
donate
捐书信息
dsno
外键,引用student表中的主键sno
dbno
外键,引用book表中主键bno
dsno和dbno共同为主键
dtime
捐书时间
查询
1.查询学号为’20130105’的学生姓名和联系电话。
Selectsname,spnum
Fromstudent
Wheresno=’20130105’
2.查询捐了书的编号为’007’学生姓名
selectsname
fromstudent,donate
wherestudent.sno=donate.dsno
3.查询孙菲捐书的书的编号
Selectdbno
Fromdonate
Wheredno=(selectsno
Fromstudent
Wheresname=’孙菲’)
4.查询孙菲借书的书名
Selectbname
Frombook
Wherebno=(selectbnumber
Fromborrow
Wheresnumber=(selectsno
Wheresname=’孙菲’))
5.查询捐了三本书的学生的姓名
Selectsname
Wheresno=(selectdsno
Fromdonate
Groupby
Havingcount(‘20130101’)=3)
创建视图
(1)视图名称:
借书信息;
显示:
图书编号,图书名,借书者学号,借书者姓名。
Createview借书信息
As
Selectbnoas'
图书编号'
bnameas'
图书名称'
snoas'
借书人学号'
snameas'
借书人姓名'
Fromborrowinnerjoinbookonbno=bnumberinnerjoinstudentonsno=snumber
(2)视图名称:
捐书信息,显示:
图书编号,图书名,捐书人学号,捐书人姓名和捐书时间
createview捐书信息
as
selectdsnoas'
捐书人学号'
dbnoas'
捐书的编号'
dtimeas'
捐书时间'
捐书人姓名'
书籍名称'
fromdonateinnerjoinstudentondsno=snoinnerjoinbookondbno=bno
(3)视图名称:
图书污损情况,显示:
损坏书籍的编号,书名,捐献者和书籍类型
createview图书污损情况
selectbnoas'
btypeas'
书籍类型'
frombook
wherebsituation='
污损'
(4)视图名称:
每个学生捐书的数量显示;
学生姓名,捐书总数
createview每个学生捐书的数量
selectdsnoas'
学生学号'
count(*)as'
捐书总数'
fromdonate
groupbydsno
存储过程
(1)创建存储过程‘借阅情况’,输入学号可以查询该学生借书的书名,借书时间,归还时间,是否可借。
createproc借阅情况(@numberchar(50))
begin
selectbnameas'
书名'
btimeas'
借书时间'
brtimeas'
还书时间'
bkjas'
是否可借'
fromborrowinnerjoinbookonbnumber=bnoinnerjoinstudentonsnumber=sno
where@number=snumber
end
go
Exec借阅情况‘20130101’
(2)创建一个存储过程’jsxx’,输入书的名称可以查询出该书的编号,捐书人的姓名和捐书时间。
createprocjsxx(@bnumberchar(50))
snameas'
捐书人的姓名'
dtime'
fromdonateinnerjoinbookondbno=bnoinnerjoinstudentondsno=sno
where@bnumber=bno
Execjsxx’0001’
触发器
(1)创建一个触发器‘借书学生欠费通知’,若学生欠费则提示你已欠费,没有欠费则提示借书成功
createtrigger借书学生欠费通知onborrow
forinsert
declare@qffloat(8)
select@qf=(selectbqkfrominserted)
if@qf='
1'
print'
你已经欠款!
'
else
print'
借书成功!
!
insert
intoborrow
values('
0004'
'
20130102'
2013-6-26'
2013-7-26'
0'
)
(2)在student表上创建一个删除类型的触发器studelete,当在student表中删除某一条记录后,在borrow和donate表中删除与此学号对应的记录。
createtriggerstudeleteonstudent
fordelete
as
studelete触发器开始执行……'
declare@stunumchar(10)
把在student中删除记录的学号赋值给@stunum'
select@stunum=sno
fromdeleted
开始查找并删除borrow中的相关记录……'
deletefromborrow
wheresnumber=@stunum
删除了borrow中学号为'
+rtrim(@stunum)+'
的记录'
declare@stunum1char(10)
select@stunum1=sno
开始查找并删除donate中的相关记录……'
deletefromdonate
wheredsno=@stunum1
删除了donate中学号为'
+rtrim(@stunum1)+'
deletestudent
wheresno='
20130101'
(3)创建一个触发器,实现捐赠一本书,剩余库存加1
createtriggertsslondonate
declare@numberaschar(20)
select@number=(selectdbnofrominserted)
updatebooksetbxl=bxl+1
wherebno=@number
intodonate
0006'
函数
(1)查询学生的读书时间
createfunctionsturetime(@bnochar(20),@snochar(20))
returnsint
declare@timeasint
declare@brtimeaschar(20)
declare@btimeaschar(20)
select@brtime=brtime,@btime=btime
fromborrow
wherebnumber=@bnoandsnumber=@sno
ifmonth(@brtime)=month(@btime)
set@time=(day(@brtime)-day(@btime))
set@time=(day(@brtime)+30-day(@btime))
return@time
该学生的读书时间为'
+cast(dbo.sturetime('
0001'
)aschar(20))
(2)输入图书编号,查询该书的书名,借书时间
createfunctionsj(@bnochar(10))
returnstable
return(selectbname,btime
frombookinnerjoinborrowonbno=bnumber
wherebno=@bno)
select*
fromdbo.sj('
0003'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 共享 设计 解析