中南大学数据库实验(二)详解.doc
文本预览下载声明
数据库原理与技术第二次试验
课程名称:数据库原理与技术
实验报告要求:
列出所有的SQL语句和源代码;
程序要求有适当的注释;
对数据完整性约束实施要求给出相应的测试用例。
实验报告提交电子档。
实验内容:存储过程与触发器
编写一段程序,将每种玩具的价格提高¥0.5,直到玩具的平均价格接近$24.5为止。此外,任何玩具的最大价格不应超过$53。
在执行前查询:select * from Toys 如下
:
create procedure inprove_pri /*创建存储过程*/
as
declare @average money /*定义变量 */
select @average=AVG(mToyRate) from Toys
begin
while @average24 /*为保证进行最后一次循环后的@average24.5*/
begin
update Toys
set mToyRate=mToyRate+0.5
where mToyRate53 /* 循环条件 */
select @average=AVG(mToyRate) from Toys
end
end
go
exec inprove_pri
select * from Toys
运行结果:
再查询avg(mToyRate) 代码:select AVG(mToyRate) aaa from Toys
create procedure prcCharges /*创建存储过程 */
@cOrderNo char(6), /*定义变量 */
@mShippingCharges money output,
@mGiftWrapCharges money output
as
begin
select @mShippingCharges=mShippingCharges, /* 从Orders表中赋值给变量*/
@mGiftWrapCharges=mGiftWrapCharges
from Orders
where cOrderNo=@cOrderNo /* 赋值条件 */
end
go
declare @mShippingCharges money,
@mGiftWrapCharges money
exec prcCharges 000001,@mShippingCharges output, /* 执行该存储过程 */
@mGiftWrapCharges output
print 000001订单的装运费:+convert(char(10),@mShippingCharges) /*打印输出 */
print 000001订单的包装费:+convert(char(10),@mGiftWrapCharges)
如下:
创建一个称为prcHandlingCharges的过程,它接收定单号并显示经营费用。PrchandlingCharges过程应使用prcCharges过程来得到装运费和礼品包装费。提示:经营费用=装运费+礼品包装费
代码如下:
rders表的订单 select * from Orders
create procedure prcHandlingCharges /* 定义存储过程 */
@cOrderNo char(6), /* 定义订变量 */
@RunningExpenses money output
as
begin
declare
@mShippingCharges money,
@mGiftWrapCharges money
exec prcCharges @cOrderNo, /* 引用prcCharges过程 */
@mShippingCharges output,
@mGiftWrapCharges output
set @RunningExpenses=@mShippingCharges+@mGiftWrapCharges
end
go
declare @RunningExpenses money
exec prcHandlingCharges 000001,@RunningExpenses output /*执行存储过*/
print 订单号的经营费用:+convert(
显示全部