第一范文网 - 专业文章范例文档资料分享平台

数据库系统概论王珊第五版学习笔记

来源:用户分享 时间:2025/6/4 20:34:23 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

类似与C语言中的函数。

编写一个存储过程,在sc表统计每个学生的平均分.

create proc avergrade as begin

//创建存储过程

select sno,avg(grade) 平均分 from sc group by sno end

exec avergrade

drop procedure avergrade

//执行存储过程

//删除存储过程

对练习1的存储过程进行改进,添加一个输入参数——学号,使存储过程能根据输入的学号计算该学生的平均分

create proc avergrade @sno char(10) as begin

select sno,avg(grade) 平均分 from sc

where sno = @sno group by sno end

exec avergrade '04'

drop procedure avergrade

在练习2的基础上添加一个输出参数——平均分,计算指定学号的平均分,然后将平均分输出。

create proc avergrade @sno char(10), @saving int out as begin

select @saving = avg(grade) from sc

where sno = @sno group by sno end

declare @avg int set @avg = 0

exec avergrade '02',@avg out select @avg 平均分

drop procedure avergrade

3.函数。

函数必须返回指定类型,可以返回表,有输入参数。

创建成绩转换函数,实现百分制成绩与优、良、中、及格、不及格五个等级的换算.

CREATE FUNCTION grade_trans(@grade FLOAT) RETURNS CHAR(16) AS BEGIN

DECLARE @class CHAR(16) SELECT @class = CASE

WHEN @grade IS NULL THEN '还没参加考试' WHEN @grade < 60 THEN '不及格'

WHEN @grade >= 60 and @grade < 70 THEN '及格' WHEN @grade >= 70 and @grade < 80 THEN '中等' WHEN @grade >= 80 and @grade < 90 THEN '良好' ELSE '优秀!' END

RETURN(@class) END

select dbo.grade_trans(88)

查询某个院系所有学生所选的每门课的平均成绩。

create function aver (@p char(10)) returns table as return (

select cno 课程号,avg(grade) 平均成绩

from student,sc

where student.sno=sc.sno and sdept=@p

group by cno )

select * from dbo.aver('cs')

drop function aver

求某个院系选修了某门课的学生人数。

create function people(@p0 char(10),@p1 char(4)) returns int as begin

declare @renshu int select @renshu = ( )

return @renshu

select COUNT(*) 选课人数 from student,sc

where student.sno = sc.sno and cno = @p1 and sdept = @p0

end

select dbo.people('cs','2')

搜索更多关于: 数据库系统概论王珊第五版学习笔记 的文档
数据库系统概论王珊第五版学习笔记.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c0xp453u8d834ka295j7z7yqpo85se700d54_5.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top