select * from 图书表 where 状态='借出' go
2. 借阅逾期视图 语句:
--select * from 图书表 --select * from 借还记录表 --select * from 类型表
Create View 借阅逾期视图 As
SELECT a.ISBN, a.书名, b.工号, b.借出日期
FROM 图书表 a JOIN 借还记录表 b ON a.ISBN=b.ISBN JOIN 类型表 C ON a.类型名=c. 类型名
WHERE a.状态='借出' and datediff(day, b.借出日期,getdate())>c.借阅期限
--select * from 借阅逾期视图 GO
3. 图书分类统计册数视图 语句:
--select * from 图书表
Create View 图书统计视图 As
SELECT 类型名,count(*) 各类图书册数, sum(单价) 各类图书总价 FROM 图书表
GROUP By 类型名
--select * from 图书统计视图
第四部分 作业3——存储过程与触发器设计(满分8分)
任务:
1) 为BookStore数据库增加一个用户oper1,该用户可以进行系统所需的应用操作,权限尽可能精简。
请描述该用户的权限。 2) 设计存储过程
a) 数据初始化过程sp_Init。包含的操作有:所有的用于测试图书信息、教师信息、历史记录清
空,输入图书分类、输入管理员信息、输入借书规定。 b) 某教师在某时间借了某本书,由某管理员办理。 c) 某教师在某时间还了某本书,由某管理员办理 d) 查看某人的全部借还书记录 e) 查看某本书的历史流转记录
f) 某管理员在某时间给全部借阅过期者发催还邮件。
g) 对书名进行模糊搜索(搜索条件可以是多个模糊列值的组合,例如:搜索书名包含“网络”
两个字,并且是近3年出版的图书)
3) 设计触发器
a) 拒绝超级用户sa对所有的数据的修改,凡是SA进行的修改全部回退。 b) Oper1用户对图书状态进行修改时,在历史记录表中追加相应的数据。
1) 为BookStore数据库增加一个用户oper1,该用户可以进行系统所需的应用操作,权限尽可能精简。
请描述该用户的权限。
use bookstore go
exec sp_addlogin oper1, '123456','bookstore'--sl, '123456','bookstore':依次为用户名,密码,默认数据库 go
EXEC sp_addrolemember 'db_datareader', ' oper1'—授权oper1用户对所有表具有查询权 GRANT UPDATE ON 图书表 TO oper1 --允许用户oper1对数据表直接更新 go
2) 设计存储过程
a) 略
b) create proc proc_lendbook
@jsID char(4), @time datetime, @shuISBN char(20), @gly nchar(20) as
select a.姓名,借出日期,d.书名,b.管理员名
from 教师表 a join 借还记录表 c on a.工号=c.工号
join 管理员表 b on b.口令=c.代办理人 join 图书表 d on c.ISBN=d.ISBN
where a.工号= @jsID and c.借出日期=@time and c.ISBN=@shuISBN
and c.代办理人=@gly
go
EXEC proc_lendbook 'J001', '2012-3-20', '9787802229761','WG001'
c) d) e) f) g)
略 略 略 略
对书名进行模糊搜索(搜索条件可以是多个模糊列值的组合,例如:搜索书名包含“网络”两个字,并且是近3年出版的图书) Create proc getbook @tsname nchar(20), @nx tinyint As
Select * from 图书表
Where 图书名 LIKE Coalesce('%',@tsname,'%') and datediff(year,出版时间,getdate())<@nx Go
Exec getbook '网络',3
略
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数据库原理与应用大作业(3)在线全文阅读。
相关推荐: