(成都信息工程学院数据库复习资料)数据库期末复习资料-程序设计题原题

更新时间:2023-09-18 14:16:01 阅读量: 幼儿教育 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

程序填空

【这些题在2012级2014年1月4日星期六的考试中出现原题,所以你懂的!但也有这里面没有的题目,学长就很悲催的抽到了!】

1. 查询2008级学生中的留级(或复读)学生信息 select * from 学生

where 年级=2008 and year(进校时间)<2008

2. 查询龙泉和航空港校区的班级个数。 select 所在地点, count(*) as 班个数 from 班

group by 所在地点

3. 查询2008级学生课程代码为1304的平均总评成绩、总评成绩的最高分和最低分。 select avg(总评成绩) as 平均成绩, max(总评成绩) as 最高分,min(总评成绩) as 最低分 from 成绩

where 课程代码=1304 and 年级=2008

4. 查找2008级课程1304总评成绩为100分的学生学号、姓名、性别、专业的代码。 select 学生.学号,姓名,性别,学生.专业 from学生,成绩

where 学生.学号=成绩。学号and 学生.年级=2008 and 课程代码=1304 and 总评成绩=100

5. 查找大气科学专业的学生学号、姓名、性别、年级、进校时间。 select 学生.学号,学生.姓名,学生.性别,年级,学生.进校时间 from 专业 _,_ 学生

where 专业名称='大气科学' and 专业.专业代码=学生.专业

6.

查询学生学号、姓名、性别及所属班全名。 select 学号,姓名,性别,班全名

from 学生 inner join 班 on 学生.专业=班.所属专业 and学生。年级=班。年级 and 学生.班序号=班.班序号 7.

查询总评成绩在50~60分之间(不包含50和60)的学生学号、姓名、性别、课程代码、总评成绩,并按学号的升序显示。

select 学生.学号,姓名,性别,课程代码,总评成绩 from 学生 inner join 成绩 on 学生.学号=成绩.学号 where 学生.年级=2008 and 总评成绩>50 and 总评成绩<60 order by学生.学号 8.

查询学号为'2008011785'的学生姓名、课程名称、总评成绩。 select 姓名,课程名称,总评成绩

from 学生 inner JOIN 成绩 on 学生.学号=成绩.学号

inner join 课程 on 成绩。课程代码=课程。课程代码

where 成绩.学号='2008011785' 9.

查询2008级平均总评成绩为80分以上(含80分)的专业代码。 select 专业as 专业代码 from 成绩 where 年级=2008 group by 专业

having avg(总评成绩)>=80 10.

将2008级同学按照总评成绩的平均分降序输出。 select 学号,avg(总评成绩) from 成绩 where 年级=2008 group by 学号

order by avg(总评成绩_)desc 11.

查询2008级课程代码为1304且平均成绩在80分以上(含80分)的专业的代码及平均成绩。 select 专业,avg(总评成绩) as 平均成绩 from 成绩

where 年级=2008 and 课程代码=1304 group by专业

having avg(总评成绩)>=80 12.

查询学号为‘2008092929’的学生的总评成绩比‘2008024763’号学生的最高总评成绩分数还要高的课程代码。 select 课程代码 from 成绩

where 学号= '2008092929 ' and 总评成绩>all(select 总评成绩 13.

from 成绩

where 学号= '2008024763 ')

查询2008级学生中各门课程的平均总评成绩情况(课程代码、课程名称、平均成绩、选课人数),并按照平均总评成绩降序排列输出。

select b.课程代码,b.课程名称,a.平均成绩,a.选课人数

from (select 课程代码,avg(总评成绩) as 平均成绩,count(学号) as 选课人数

from 成绩 where 年级=2008

group by 课程代码) as a ,课程 as b

where a.课程代码=b.课程代码 order by a.平均成绩 desc 14.

查找并显示电子信息工程专业2008级同学计算机文化基础课程的最高分、最低分和平均分。 select max(总评成绩) as 最高分,min(总评成绩) as 最低分,avg(总评成绩) as 平均分 from 成绩 where 年级=2008 15.

and 专业=(select 专业代码 from 专业 where 专业名称='电子信息工程') and 课程代码=(select 课程代码 from 课程 where 课程名称='计算机文化基础')

复制2008级平均总评成绩在85分以上的学生信息(学号、姓名、专业的代码、平均总评成绩)到表goodbaby。 select b.学号,a.姓名,a.专业,b.均成绩 into goodbaby

from 学生 a,(select 学号,avg(总评成绩) as平均总评成绩 from 成绩 where 年级=2008 group by 学号

having avg(总评成绩)>=85) b where a.学号=b.学号

16. 复制2008级平均总评成绩在70分以下且有3门(含3门)不及格的学生信息(学号,平均成绩,不及格门数)到表

badbaby。

select a.学号,平均成绩,不及格门数 into badbaby

from (select 学号,avg(总评成绩) as 平均成绩

from 成绩 where 年级=2008 group by 学号

having avg(总评成绩)<70) a,

(select 学号,count(课程代码) as 不及格门数

from 成绩

where 年级=2008 and 总评成绩<60 group by 学号

having count(课程代码)>=3) b

where a.学号=b.学号 17.

编写程序实现[1,40]的奇数平方和赋x,偶数平方和赋y,并输出x,y的值。 declare @x int,@y int,@i int select @i=1,@x=0,@y=0 While @i<=40 begin end

select @x as '奇数的平方和',@y as '偶数的平方和' 18.

编写程序计算1-5000之间(含1和5000)所有能被9整除的数的个数及总和。 declare @i int,@zonghe int,@n int set @i=1 set @zonghe=0 set @n=0 While @i<=5000 begin end

select @n as '个数',@zonghe as '总和' 19.

计算1-9999以内的所有完全平方数(如36=6*6,则称36为完全平方数)的总和及个数。 declare @i int,@zonghe int,@n int set @i=1

if @i %9=0 begin end set @i=@i+1

set@zonghe=@zonghe + @i set @n=@n+1 if @i%2=0 else

set @x=@x+@i*@i set @y=@y+@i*@i

set @i = @i + 1

set @zonghe=0 set @n=0

while @i*@i<=9999 begin

set @zonghe=@zonghe + @i*@i set @n=@n+1 set @i = @i + 1

end select @zonghe as '总和',@n as '个数' 20.

通过while循环计算10!。 declare @n tinyint,@阶乘 int set @n=1 set @阶乘_= 1 while @n<=10 begin end select @阶乘 21.

完成程序依次显示字母A~Z(一行显示一个字母)。 declare @i int set @i=0 while @i<24 begin end 22.

完成程序依次显示字母Z~A(一行显示一个字母)。 declare @i int set @i=0 while @i<24 begin end 23.

查询2008级所有同学的学号、总评成绩的平均分、等级(90分以上A,80-90为B,70-80为C,60-70为D,60分以下为E),并按照等级升序输出(即先输出A级学生,再输出B级学生,最后输出E级学生)。 select 学号,avg(总评成绩) as 平均成绩,

(case when avg(总评成绩)>=90 then 'A'

when avg(总评成绩)>=80 AND avg(总评成绩)<90 then 'B' when avg(总评成绩)>=70 AND avg(总评成绩)<80 then 'C' when avg(总评成绩)>=60 AND avg(总评成绩)<70 then 'D' ELSE 'E' end) AS 等级

print char(ascii(‘Z’)-@i) set @i = @i+1

print char(ascii(‘A’)+@i) set @i=@i+1

set @阶乘=@阶乘*@n set @n=@n+1

from 成绩

where 年级=2008 group by 学号 order by 等级 24.

显示今天是第几季度,输出格式为“第一季度”、“第二季度”、“第三季度”、“第四季度”。 declare @季度 tinyint

set @季度= datepart(q,getdate()) select (case @季度

when 1 then '第一季度' when 2 then '第二季度' when 3 then '第三季度'

when 4 then '第四季度' end) as 今天是

本文来源:https://www.bwwdw.com/article/vbah.html

Top