搜档网
当前位置:搜档网 › 南昌航空大学2010-2011学年第二学期期末考试

南昌航空大学2010-2011学年第二学期期末考试

南昌**大学201*-201*学年第二学期期末考试课程名称:数据库原理及应用

学号姓名年龄所在系

1 张三18 数学系

2 李四19 外语系

3 王五20 体育系

4 马六21 物理系

(学生)

课程号课程名先行课

C1 物理数学

C2 数据库计算机

C3 矩阵论高数

C4 德语英语

(课程)

学号课程号成绩

1 C

2 90

2 C1 96

3 C3 90

4 C1 85

(选课)

一、程序填空题(按照程序给定功能,补全程序。每题5分、共20分)

(1)从选课表中选出选修了C1的学号和成绩,并按成绩的升序,学号的降序排序use KSSJK

go

select*

from选课

where课程号='C1'

ORDER BY 成绩DESC,学号ASC

(2)求至少有两名学生选修的课程号和平均分

use KSSJK

go

select A VG(成绩)as平均成绩from选课

where课程号in

(select 课程号from 选课)

group by 课程号having COUNT(*)>1

(3)查询每位学生在选课表中课程的先行课。

use KSSJK

go

select先行课

from选课,学生,课程

where学生.学号=选课.学号and 课程.课程号=选课.课程号

(4)查询至少选修2门课的学生的所在系。

use KSSJK

GO

SELECT distinct选课.学号,所在系

from选课,学生

where选课.学号=学生.学号

and选课.学号in

(select学号

from选课

group by选课.学号

having count(选课.学号)>=2)

二、程序设计题。(共80分)

1、求C1课程的成绩高于马六的学生的学号和成绩。(10')

USE kssjk

GO

select a.学号,b.成绩

from学生a,选课b

where a.学号=b.学号

and b.成绩>(select成绩

from选课,学生

where选课.学号=学生.学号

and学生.姓名='马六'

and选课.课程号='C1'

and b.课程号='C1')

2、求所有课程里分数最高的学号、姓名、所在系、及课程名。(15')

USE kssjk

GO

select学生.学号,姓名,所在系,课程名,成绩

from学生,课程,选课

where学生.学号=选课.学号and选课.课程号=课程.课程

and选课.成绩>=all(select成绩from选课)

3、写程序求其他系中比数学系某一年龄小的学生。(即年龄小于计算机系年龄最大的学生)(15')

USE kssjk

GO

select学号,姓名,所在系

from学生

where年龄

(select年龄from学生

where所在系='数学系')

and学生.所在系not in('数学系')

4、选修了物理课程但没有选修矩阵论课的学生学号和姓名。(20')

USE kssjk

GO

select学号,姓名

from学生

where学号in

(select学号

from选课,课程

where选课.课程号=课程.课程号

and课程名='物理'except

select学号

from选课,课程

where选课.课程号=课程.课程号

and课程名='矩阵论')

5、选修了学号为1学生所选修所选修全部课程的学生学号和姓名。(20')

USE kssjk

GO

select学号,姓名

from学生

where学号in

(select学号

from选课as xk1

where not exists

(select*

from选课as xk2

where xk2.学号='1'and not exists

(select*

from选课as xk3

where xk3.学号=xk1.学号and xk3.课程号=xk2.课程号) ))

相关主题