sql 2008 R2 函数、游标的创建和使用

2.在“学生成绩管理系统”数据库中创建一个函数,该函数可返回某个学生或全部学生的学号,姓名,班级,课程名称,成绩,学分。调用该函数并查看执行结果。

3.建立一个游标,利用游标显示“学生成绩管理系统”数据中学生信息表中的数据。

四、实验过程:


  • 1.在“学生成绩管理系统”数据库中创建“计算平均分”标量函数。在该函数中创建输入参数“@学号”和“@姓名”,以便查询不同学生的成绩平均分。调用该函数并查看执行结果。

use STDB;

go

/* 定义一个标量函数,即返回单值的函数*/

create function 计算平均分(@学号 varchar(8),@姓名 varchar(12))

returns int

begin

declare @平均分 int

select @平均分=avg(grade) from s as a join sc as b on a.sno=b.sno

where a.sno=@学号 and sname=@姓名

return @平均分

end

go

select dbo.计算平均分(‘1001’,‘李勇’) as 平均分

  • 2.在“学生成绩管理数据库:STDB”中创建一个函数,该函数可返回某个学生或全部学生的学号,姓名,课程名称,成绩,学分

use STDB;

go

/定义一个返回表值的函数/

create function 各科成绩(@学号 varchar(8)=null)

returns @表 table(学号 varchar(8),姓名 varchar(12),课程名称 varchar(20),成绩 int,学分 int)

as

begin

if @学号 is null

begin

insert into @表

select s.sno,s.sname,c.cname,sc.grade,c.ccredit

from s join sc on s.sno=sc.sno join c on sc.cno=c.cno

end

else

insert into @表

select S.sno,S.SNAME,CNAME,GRADE,CCREDIT

from S join sc on S.sno=Sc.sno join C on SC.CNO=c.CNO

where S.sno=@学号

return --返回

end

go

select * from 各科成绩(‘1002’)

select * from 各科成绩(default)

  • 建立一个游标,利用游标显示“学生成绩管理数据库:STDB”中学生信息表中的数据。

USE STDB;

Go

/定义局部变量/

declare @学号 char(10),@姓名 varchar(8),@性别 char(2),@年龄 int,@系 varchar(30)

/* 定义游标*/

DECLARE 学生数据 CURSOR

FOR SELECT * FROM S

/* 打开游标*/

OPEN 学生数据

/* 通过Fetch命令读游标中的数据,并存入指定的局部变量中*/

FETCH NEXT from 学生数据 into @学号,@姓名,@性别,@年龄,@系

/* 通过While循环,逐条输出游标中的记录*/

WHILE @@FETCH_STATUS = 0

BEGIN

print cast(@学号 as char(15))+cast(@姓名 as char(10))+cast(@性别 as char(6))+cast(@年龄 as char(6))+cast(@系 as char(10))

FETCH NEXT from 学生数据 into @学号,@姓名,@性别,@年龄,@系

END

/关闭游标/

CLOSE 学生数据
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

更多:Java进阶核心知识集

包含:JVM,JAVA集合,网络,JAVA多线程并发,JAVA基础,Spring原理,微服务,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存等等

image

高效学习视频

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
密算法,分布式缓存等等

[外链图片转存中…(img-czYpGZM6-1713340354190)]

高效学习视频

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 21
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在设计 SQL Server 网上购物系统时,游标函数是非常有用的工具。游标可用于处理一系列数据行,而函数可用于执行特定的操作并返回结果。 以下是创建游标函数的步骤: 创建游标: 1. 使用 DECLARE 语句声明游标变量,并指定要查询的数据集。 2. 使用 OPEN 语句打开游标并将游标指向数据集的第一行。 3. 使用 FETCH 语句检索当前游标指向的行,并将该行的数据存储到变量中。 4. 使用 WHILE 循环遍历游标,直到到达数据集的末尾。 5. 在处理完数据后,使用 CLOSE 和 DEALLOCATE 语句关闭游标。 以下是一个示例创建游标SQL 代码: ``` DECLARE @ProductName varchar(100) DECLARE @ProductPrice money DECLARE ProductCursor CURSOR FOR SELECT ProductName, ProductPrice FROM Products OPEN ProductCursor FETCH NEXT FROM ProductCursor INTO @ProductName, @ProductPrice WHILE @@FETCH_STATUS = 0 BEGIN PRINT 'Product name: ' + @ProductName PRINT 'Product price: ' + CAST(@ProductPrice AS varchar(20)) FETCH NEXT FROM ProductCursor INTO @ProductName, @ProductPrice END CLOSE ProductCursor DEALLOCATE ProductCursor ``` 创建函数: 1. 使用 CREATE FUNCTION 语句创建函数。 2. 在函数中编写 SQL 代码,执行特定的操作。 3. 使用 RETURN 语句返回结果。 以下是一个示例创建函数SQL 代码: ``` CREATE FUNCTION GetProductCountByCategory ( @CategoryName varchar(50) ) RETURNS int AS BEGIN DECLARE @ProductCount int SELECT @ProductCount = COUNT(*) FROM Products WHERE CategoryName = @CategoryName RETURN @ProductCount END ``` 在以上示例中,函数名为 GetProductCountByCategory,它接收一个参数 CategoryName,并返回该类别下的产品数量。在函数中,使用 COUNT 函数计算产品数量,并将结果存储在变量 @ProductCount 中,最后使用 RETURN 语句返回结果。 总的来说,游标函数都是非常有用的 SQL Server 工具,可以帮助您更好地处理数据和执行特定的操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值