实验五:存储过程实验

实验五:存储过程实验

实验目的:

掌握数据库存储过程的设计和使用方法
理解数据库PL/SQL编程语言和编程规范

实验内容:

一、存储过程定义与运行
二、存储过程的更名、删除
三、存储过程的参数传递

实验重点与难点

实验重点:存储过程的定义、运行
实验难点:存储过程的参数传递方法

实验过程:

1.1定义一个存储过程,更新所有订单(含税折扣价)的总价
1.2.执行存储过程
2.1 有参数的存储过程
2.2.执行有参数的存储过程
3.1 定义有局部变量的存储过程
3.2.执行存储过程
3.3查看存储过程执行结果
4.修改存储过程
(1)修改存储过程名
(2)编译存储过程名
5.删除存储过程

参考语句:

1.1定义一个存储过程,更新所有订单(含税折扣价)的总价
delimiter $$
Create Procedure Proc_TotalPrice()
Begin 
     Update orders Set totalprice=
     (Select Sum(extendedprice *(1-discount)*(1+tax))
     from lineitem
     where orders.orderKey =lineitem.orderKey);
End$$
delimiter ;
1.2.执行存储过程
Call Proc_TotalPrice();

-------------------------------------------------------------

2.1 有参数的存储过程
delimiter $$
Create Procedure Proc_TotalPriceForOrder(okey Integer)
Begin
	Update Orders Set TotalPrice=(Select Sum(extendedprice*(1-discount)*(1+tax))	
	from lineitem
	Where orders.orderKey=lineitem.orderKey AND lineitem.orderKey=orderkey);
End$$
delimiter ;


2.2.执行有参数的存储过程
Call Proc_TotalPriceForOrder(3645);

--------------------------------------------------------------

3.1 定义有局部变量的存储过程
修改指定编号的所有订单的总价
delimiter $$
Create Procedure Proc_TotalPriceForCustname(P_custname CHAR(25))
Begin
   Declare L_custkey Integer;

   Select custkey INTO L_custkey
   From customer Where name =Trim(p_custname);

   Update orders Set totalprice=
	(Select Sum(extendedprice*(1-discount)*(1+tax))
	From lineitem
	Where orders.orderkey=lineitem.orderKey AND 
	  orders.custKey=L_custkey);
End$$
delimiter ;


3.2.执行存储过程
Call Proc_TotalPriceForCustname(‘陈楷丰’);

3.3查看存储过程执行结果
select * from orders where custkey=(select custkey from customer where name="陈楷丰");

---------------------------------------------------------------------------

4.修改存储过程
(1)修改存储过程名 
	ALTER Procedure Proc_TotalPriceForOrder RENAME To TotalPriceForOrder;2)编译存储过程名 
	AlTER Procedure TotalPrimceForOrder(okey Integer) COMPILE;

--------------------------------------------------------------------------
5.删除存储过程

	DROP Procedure TotalPriceForOrder;






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值