数据库专题训练实验-------存储过程

【实验目的】

  1. 掌握存储过程的创建方法。
  2. 掌握存储过程的使用方法。

【实验环境】

Sql server 2005

【实验重点及难点】

  1. 创建无参数的存储过程。
  2. 创建有参数的存储过程。
  3. 执行存储过程的方法。
  4. 查看存储过程的方法。
  5. 修改存储过程的方法。
  6. 删除存储过程的方法。

【实验内容】

设定已有一个名为XSCJ的数据库,在XSCJ数据库中创建如下关系表:学生信息表S,课程表C,成绩表SC

学生基本信息表S:

Sno

Sname

Ssex

Sage

Sdept

S1

李强

19

计算机

S2

王松

20

通信工程

S3

李丽

18

电子

S4

张平

21

计算机

S5

何晴

19

通信工程

S6

王小可

20

计算机

S7

张欢

20

电子

课程信息表C:                                          学生成绩表SC:

Sno

Cno

Score

S1

C2

85

S2

C3

72

S3

C4

90

S4

C1

84

S5

C2

58

S6

C3

88

S3

C1

69

S1

C5

88

S1

C3

95

  Cno       

Cname

Cteacher

C1

C语言

刘军

C2

C++程序设计

李彤

C3

操作系统

吴明

C4

数据库

李白

C5

计算机网络

苏志朋

C6

数据结构

刘军

1、创建一个名为sp_cxxs的存储过程,要求该存储过程列出计算机系所有学生的姓名。

Create procedure dbo.sp_cxxs AS

Select sname from s where sdept=’计算机

go

2、创建一个名为sp_cxcj的存储过程,要求该存储过程带一个输入参数,用于接收学生姓名。执行该存储过程时,将根据输入的学生姓名列出该生的所修课程名称和分数。

Create procedure dbo.sp_cxcj

(@p_studentname varchar(50))

AS

Select c.cname,sc.score from s,c,sc where s.sno=sc.sno and sc.cno=c.cno and s.sname=@p_studentname

go

3、创建一个名为sp_cxzgf的存储过程,要求该存储过程带一个输出参数,用于返回”C语言课程的最高分。

Create procedure dbo.sp_cxzgf

(@p_courseMax int output)

AS

Select @p_courseMax=max(score) from c, sc where c.cno=sc.cno and c.cname=’C语言

go

4、创建一个名为sp_cxscore的存储过程,要求该存储过程带一个输入参数和一个输出参数,输入参数用于接收学生姓名,输出参数用于返回该生的各科平均分。

Create procedure dbo.sp_cxscore

(@p_sname varchar(50), @p_scoreAvg float output)

AS

Select @p_scoreAvg=avg(score) from s, sc where s.sno=sc.sno and s.sname=@p_sname

go

5、执行题4所创建的存储过程,并打印输出参数的返回值。输入参数为‘李强’。

 

Declare @stuScoreAvg float

Declare @stuName varchar(50)

Set @stuName=’李强

Exec sp_cxscore @stuName, @stuScoreAvg output

Print ‘学生 ’ + @stuName + ‘的平均分为: + @stuScoreAvgs

go

6、使用系统表查看XSCJ数据库中名为sp_cxxs的存储过程的定义信息

 

select text from scdb.dbo.syscomments where id in

(select id from scdb.dbo.sysobjects where name='myrpoc' and type='P')

go

7、修改题4所创建的存储过程,要求新的存储过程带一个输入参数和一个输出参数,输入参数用于接收教师姓名,输出参数用于返回该教师所教课程的平均分。

Alter procedure dbo.sp_cxscore

(@p_tname varchar(50), @p_allAvg float output)

AS

Select @p_allAvg=avg(score) from c, sc where c.cno=sc.cno and c.cteacher=@p_tname

Go

8、删除题7所给出存储过程。

If exists(sleect name from scdb.dbo.sysobjects where name=’ sp_cxscore’ and type=’P’)

   Drop procedure sp_cxscore

GO

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程图一乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值