《SQL Server2005数据库实用教程 教学课件 作者 常军林 实训指导书实训八函数、游标的创建和使用》由会员分享,可在线阅读,更多相关《SQL Server2005数据库实用教程 教学课件 作者 常军林 实训指导书实训八函数、游标的创建和使用(3页珍藏版)》请在金锄头文库上搜索。
1、河南交通职业技术学院教案实训八 函数、游标的创建和使用一、实训目的:1理解批处理、脚本的概念,掌握T-SQL的流程控制语句及编程方法。2理解并掌握函数应用。3学会正确使用游标。二、实训环境:Windows XP 系统、SQL Server 2005三、实训内容:1在“学生成绩管理系统”数据库中创建“计算平均分”标量函数。在该函数中创建输入参数“学号”和“姓名”,以便查询不同学生的成绩平均分。调用该函数并查看执行结果。2在“学生成绩管理系统”数据库中创建一个函数,该函数可返回某个学生或全部学生的学号,姓名,班级,课程名称,成绩,学分。调用该函数并查看执行结果。3建立一个游标,利用游标显示“学生成
2、绩管理系统”数据中学生信息表中的数据。四、实训过程:1在“学生成绩管理系统”数据库中创建“计算平均分”标量函数。在该函数中创建输入参数“学号”和“姓名”,以便查询不同学生的成绩平均分。调用该函数并查看执行结果。use 学生成绩管理系统gocreate function 计算平均分(学号varchar(8),姓名varchar(12)returns intbegindeclare 平均分intselect 平均分=avg(成绩) from 学生表as a join 成绩表as b on a.学号=b.学号where a.学号=学号and 姓名=姓名return 平均分endgoselect db
3、o.计算平均分(10000102,李强) as 平均分2在“学生成绩管理系统”数据库中创建一个函数,该函数可返回某个学生或全部学生的学号,姓名,班级,课程名称,成绩,学分。调用该函数并查看执行结果。use 学生成绩管理系统gocreate function 各科成绩(学号varchar(8)=null)returns 表table(学号varchar(8),姓名varchar(12),班级char(10),课程名称varchar(20),成绩int,学分int)asbeginif 学号is null begin insert into 表 select a.学号,a.姓名,a.班级,b.课程名
4、称,c.成绩,b.学分 from 学生表as a join 成绩表as c on a.学号=c.学号join 课程表as b on b.课程编号=c.课程编号 endelse insert into 表 select a.学号,a.姓名,a.班级,b.课程名称,c.成绩,b.学分 from 学生表as a join 成绩表as c on a.学号=c.学号join 课程表as b on b.课程编号=c.课程编号 where a.学号=学号returnendgoselect * from 各科成绩(10000103)select * from 各科成绩(default)go3建立一个游标,利用
5、游标显示“学生成绩管理系统”数据中学生信息表中的数据。USE 学生成绩管理系统;DECLARE 学生数据CURSOR FOR SELECT * FROM 学生表OPEN 学生数据 FETCH NEXT from 学生数据 WHILE FETCH_STATUS = 0 BEGIN FETCH NEXT from 学生数据 ENDCLOSE 学生数据DEALLOCATE 学生数据-或USE 学生成绩管理系统;declare 学号char(8),姓名varchar(12),性别char(2),出生日期datetime,班级char(10),专业varchar(20)DECLARE 学生数据CURSO
6、R FOR SELECT * FROM 学生表OPEN 学生数据 FETCH NEXT from 学生数据into 学号,姓名,性别,出生日期,班级,专业 WHILE FETCH_STATUS = 0 BEGIN print cast(学号as char(20)+cast(姓名as char(20)+cast(性别as char(20)+cast(出生日期as char(20)+cast(班级as char(20)+cast(专业 as char(20) FETCH NEXT from 学生数据into 学号,姓名,性别,出生日期,班级,专业 ENDCLOSE 学生数据DEALLOCATE 学生数据 3