【数据库】分支与循环&函数&存储过程

目录

函数 

【1】 

【2】

【3】❗

【4】

存储过程

思考&分析


函数 

【1】 

--(1)定义一个根据学生姓名查询该生学习课程的函数stu_count。
--create function stu_count(@sname char(8))--学生姓名
--returns char(12)--学习课程
--begin
--declare @course char(12)--学习课程
--select @course=course from scores
--join student on scores.sno=student.sno
--where sname=@sname--根据姓名
--return @course--学习课程
--end;
--调用
--print dbo.stu_count('杜敏')

【2】

----定义一个根据系名和课程名,查询该系学生在该门课程上程的平均分的函数sdept_avggrade。
--create function sdept_avggrade(@dept varchar(20),@course varchar(20))
--returns decimal(4,1)
--begin
--declare @avg decimal(4,1)
--select @avg=avg(grade) 
--from scores join student on scores.sno=student.sno
--where @dept in(select dept from classes join  student on classes.classno=student.sno)
--and course=@course
--return @avg
--end;


----分别用select和print调用函数sdept_avggrade,查询“计算机系”学生在“数据库原理与应用”这门课程上的平均成绩。
--print dbo.sdept_avggrade('计算机系','大学英语')
--select dbo.sdept_avggrade('计算机系','大学英语')

【3】❗

--(3)创建一个函数f1,根据学生的学号和选修的课程查询该生在该门课程上的成绩,然后返回这个成绩所对应的等级(90及以上:优秀;80及以上:良好;70及以上:中等;60及以上:及格;60以下:不及格)。
--create function f1(@sno char(8),@course char(12))
--returns char(8)
--begin 
--declare @level char(8),@grade int
--select @grade=grade from scores 
--if @grade>=90
--set @level='优秀'
--else if @grade>=80 
--set @level='良好'
--else if @grade>=70
--set @level='中等'
--else if @grade>=60
--set @level='及格'
--else
--set @level='不及格'
--return @level
--end;
--调用
--print dbo.f1('6320210622 ','大学英语')
--select dbo.f1('计算机系','大学英语')
create function f1(@sno char(8),@course char(12))
returns char(8)
begin 
declare @level char(8),@grade int
select @grade=grade from scores 
select @level=CASE
when @grade>=90 then '优秀'
when @grade>=80  then'良好'
when @grade>=70 then '中等'
when @grade>=60 then '及格'
else '不及格'
end
return @level
end;

【4】

--(4)创建一个自定义函数f2,根据学生的学号查询该学生的姓名、选修课程名称和对应课程的成绩。(表值函数)
--create function f2(@sno char(8))
--returns table
--return
--(
--select sname,course,grade from student
--join scores on student.sno=scores.sno
--where student.sno=@sno
--)

--(7)调用函数f2,查询“St0109010001”号学生的姓名、选修课程名称和对应课程的成绩。
--select * from dbo.f2('6320210630')

--使用DROP FUNCTION语句来删除f1和f2函数。
drop function f1,f2

存储过程

思考&分析

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

唐唐思

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

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

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

打赏作者

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

抵扣说明:

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

余额充值