(实验名称:
存储过程的建立与使用
)
专 业 ___________________ 班 级 ________________ 学 号 ___________________ 学生姓名 _____________________ 指导老师 _______
怀化学院计算机科学与技术系
2011年12月6日
《数据库原理与应用》实验报告
实验名称: 存储过程的建立与使用
一、 实验目的
理解存储过程的概念、作用、建立和调用方法。
二、 实验内容:
使用 CREATE PROCEDURE 语句创建存储过程, ALTER PROCEDURE 语句修改存储过
程,DROP PROCEDURE语句删除存储过程,存储过程有不带参数的、有带输入参数的、有带 输出参数(output)的,还可以有带返回值的。创建好的存储过程可以使用 语句执行。
EXEC procedure.name
三、实验步骤与运行结果
1利用存储过程,给employee表添加一条业务部门员工的信息。 create procedure n ew_record (@emp_ no char(5), @emp_ name varchar(10), @sex char(2), @dept varchar(IO), @title varchar(10), @date_hired datetime, @birthday datetime, @salary int,
@teleph one varchar(20), @addr varchar(50) ) as
insert in to employee values( @emp_ no,@emp _n ame,@sex,
@dept,@title,@date_hired,@birthday,@salary,@telepho ne,@addr)
exec new_record E0039,'大赛','男','业务','职员’,'1996-03-01 00:00:00.000','3200','0218128079','上海市'
00:00:00.000','1970-03-28
2、 利用存储过程从employee sales customer表的连接中返回所有业务员的姓名、
客户姓名、销售金额。
create procedure em_sa_cu as
select employee.emp_ name,customer.cust_ name,sales.tot_amt from employee,customer,sales
where sales.cust_id=customer.cust_id and sales.sale_id=employee.emp_ no exec em_sa_cu
3、 创建带一个输入参数的存储过程,实现按员工姓名进行模糊查找,查找员工编号、 订
单编号、销售金额。
create procedure query @n ame varchar(10) as
select sale_id,order_ no ,sum(tot_am销售金额 from sales where sale_id in( select emp_ no from employee where emp_ name like @n ame) group by sale_id,order_ no exec query 刘J%'
4、 创建带两个输入参数的存储过程,查找姓 刘”并且职称为 职员”的员工的员工编
号、订单编号、销售金额。
create procedure query11( @n ame varchar(10), @title varchar(10)) as
select sale_id,order_ no ,sum(tot_am销售金额 from sales where sale id in
(select emp_ no from employee where emp_ name like @n ame) group by sale_id,order_ no exec query11 刘 %','职员'
5、 利用存储过程计算出订单编号为10003的订单的销售金额。(带一输入参数和一输 出参
数)(提示:sales表中的tot_amt应该等于sale_item表中的同一张订单的不同 销售产品的
qty*unit_price之和) create procedure ino ut( @order_ no char(5), @p_tot int output ) as
select @p_tot=sum(sale_item.qty*sale_item.u nit_price) from sales,sale_item
where sales.order_ no=@order_ no
declare @tot_amt int
exec in out 10003,@tot_amt output select @tot_amt
6、 创建一存储过程,根据给出的职称,返回该职称的所有员工的平均工资。参数和返回值)
create procedure avg_salary @title char(10) as
declare @avg_salary int select @avg_salary=avg(salary) from employee where title=@title return @avg_salary declare @avg int
(带一输入
exec @avg=avg_salary 职员'
print '职员平均工资='+ cast(@y as char(10))
四、实验总结
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- net188.cn 版权所有 湘ICP备2022005869号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务