文档库

最新最全的文档下载
当前位置:文档库 > 数据库上机第五次上机答案

数据库上机第五次上机答案

1.有如下员工工资表:

数据库上机第五次上机答案

检查全体员工的平均工资,如果这个平均工资小于2500,则全体涨原工资的10%,直到平均工资大于2500为止。要求用while语句完成。

while (select avg(gz) from gz)<2500

update gz

set gz = gz*1.1

2.基于XSBOOK数据库,对于没有补考的同学,利用游标以下功能:当某个同学选课少于2门时,提示“某某选的课程太少,请继续选课!”;当某个同学选课等于2门时,提示“某某选的课程略偏少,可根据个人爱好再选课。”

当某个同学选课大于2门时,提示“某某选的课程数较多,是个爱学习的人!”

declare pass_cur cursor global dynamic

for

select姓名,count(cjb.课程号)as'选课数量'

from xsb,kcb,cjb

where xsb.学号=cjb.学号and cjb.课程号=kcb.课程号and(备注not like'%待补考%'or备注is null)

group by xsb.学号,姓名

open pass_cur

declare@name char(8),@num int

fetch next from pass_cur into@name,@num

while@@fetch_status=0

begin

if(@num<2)

select rtrim(@name)+'选的课程太少,请继续选课!'

else if (@num=2)

select rtrim(@name)+'选的课程略偏少,可根据个人爱好再选课。'

else

select rtrim(@name)+'选的课程数较多,是个爱学习的人!'

fetch next from pass_cur into@name,@num

end

close pass_cur

deallocate pass_cur

3.自定义函数实现以下功能:

输入姓名或姓氏或学号,显示其学号、姓名、专业、选课名称、出生时间;

IF EXISTS(SELECT name FROM sysobjects

WHEREname='fn_name'AND TYPE='IF')

DROP function fn_name

GO

create function fn_name(@name varchar(10))

returns table

as return

(

select XSb.学号,姓名,专业,课程名,出生时间

from xsb,kcb,cjb

where xsb.学号=cjb.学号and cjb.课程号=kcb.课程号and(xsb.学号=@name or姓名like@name+'%')

)

go

select*from fn_name('101109') select*from fn_name('张')