sqlserver存储过程T-SQL操作

library数据库有如下表
book表:
在这里插入图片描述
借阅表borrow:
在这里插入图片描述
读者表reader:
在这里插入图片描述

一、不带参数的存储过程

为数据库“Library”创建一个多表查询的存储过程,查询出“数据库”相关图书被借阅情况。

Create proc 图书借阅情况
As
begin
Select * from reader,borrow,book 
Where reader.RID=Borrow.RID and Borrow.bid=book.bid and book.bname like '%数据库%'
end

二、带输入参数的存储过程

为数据库“Library”创建一个查询某读者(姓名在执行存储过程时给出)借阅情况的存储过程。

Create proc 查询某读者借阅情况 @name varchar(20)
As
begin
Select * from reader,borrow,book 
Where reader.RID=Borrow.RID and Borrow.bid=book.BID and Reader.Rname=@name
End

调用代码:

exec 查询某读者借阅情况 '程鹏'
exec 查询某读者借阅情况 '杨淑华'

三、带默认输入参数

为数据库“Library”创建一个查询某读者借阅情况的存储过程。读者姓名在执行存储过程时给出,如果执行存储过程时未给出读者姓名,则查询所有读者借阅情况。

Create proc 查询某读者借阅情况_带默认值_ @name varchar(20)=NULL
As
begin
if @name is NULL
 begin
 Select * from reader,borrow,book 
 Where reader.RID=Borrow.RID and Borrow.bid=book.BID
 end
else 
 begin
 Select * from reader,borrow,book 
 Where reader.RID=Borrow.RID and Borrow.bid=book.BID and Reader.Rname=@name
 end
end

四、带输入、输出参数的存储过程

为数据库“Library”创建一个查询 某出版社图书总价值和平均价值的存储过程,并调用该存储过程查询出“人民邮电出版社”的图书总价值和平均价值。用带输出参数的存储过程实现!

create proc 查询某出版社图书总价值和平均价值 
@_publisher_ varchar(30) ,
@总价值 decimal(9,2) output,
@平均价值 decimal(9,2) output
as
begin
 Select @总价值=SUM(Price),@平均价值=avg(Price) from book where publisher = @_publisher_
End

调用代码:

declare @output1 decimal(9,2),@output2 decimal(9,2)
exec 查询某出版社图书总价值和平均价值 '人民邮电出版社',@output1 Output,@output2 Output
select @output1 as 总价值,@output2 as 平均价值

五、总结

在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值