您好,欢迎来到要发发知识网。
搜索
您的当前位置:首页第九次数据库实验-存储过程的建立与使用

第九次数据库实验-存储过程的建立与使用

来源:要发发知识网
《数据库原理与应用》实验报告

(实验名称:

存储过程的建立与使用

专 业 ___________________ 班 级 ________________ 学 号 ___________________ 学生姓名 _____________________ 指导老师 _______

怀化学院计算机科学与技术系

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

本站由北京市万商天勤律师事务所王兴未律师提供法律服务