1.创建学生数据库StuDB,文件名和位置自定,在此数据库中创建如下三张表:
学生表(student) (
学号(sno) 普通编码定长字符类型,长度7,主码,
姓名(sname) 普通编码定长字符类型,长度8,非空,
性别(ssex) 统一编码定长字符类型,长度1,
年龄(sage) 微整型,
所在系(sdept) 统一编码可变长字符类型,长度20
)
课程表(course) (
课程号(cno) 普通编码定长字符类型,长度6,主码,
课程名(cname) 统一编码定长字符类型,长度10,非空,
学分(credit) 小整型,
学期(semester) 小整型
)
修课表(sc)(
学号(sno) 普通编码定长字符类型,长度7,主码,外码
课程号(cno) 普通编码定长字符类型,长度6,主码,外码
成绩(grade) 小整型,
修课类别(type)普通编码定长字符类型,长度4
)
2.将“习题6-3(学生数据库数据).xls”中的数据导入到这三张表中。
3.完成如下查询
(1) 查询计算机系没有选课的学生的姓名和年龄。没有选修数据库课程的
(2) 统计‘VB’课程的考试最高分、最低分和平均分。
(3) 统计‘数据库’课程的选课人数。
(4) 统计计算机系学生’vb’课程考试的最高分、最低分、平均分。
(5) 统计每个系学生’vb’课程考试的最高分、最低分、平均分,列出系名和三个分数。
(6) 查询每个学生的修课总学分,并进行如下处理:如果总学分高于10分,则显示‘好学生’;如果总学分在6到10分间,则显示‘一般学生’;如果总学分低于6分,则显示‘不好学生’。
(7) 统计每个系每个学生的修课门数和平均成绩,如果修课门数大于3并且平均成绩高于90的显示‘优秀’;如果修课门数大于3并且平均成绩在80~90,则显示‘较好’;对于修课门数小于等于3的并且平均成绩高于90的显示‘较好’;如果修课门数小于等于3并且平均成绩在80~90,则显示‘一般’;其他情况显示为‘应努力’。列出系名、学号、原修课门数和平均成绩以及处理后的显示结果。
(8) 统计每个系每个学生的考试平均成绩,如果平均成绩高于90,则显示‘好’;如果平均成绩80~90,则显示‘较好’;如果平均成低于80,则显示‘一般’;否则显示‘不太好’,对空值则显示‘没有’。
(9) 查询每门课程的选课人数,如果选课人数超过6人,则显示‘人多’;如果选课人数4~6人,则显示‘一般’;如果选课人数少于4人,则显示‘较少’;如果此门课程无人选,则显示‘无人选’。
(10) 查询VB考试成绩最高的前两名学生的姓名和成绩。
(11) 查询计算机系学生考试成绩最低的两个成绩所对应的学生的姓名、课程名和成绩。
(12) 列出没有选课的学生的学号、姓名和所在系。
(13) 查询计算机系年龄大于总平均年龄的学生的姓名和年龄。
(14) 查询计算机系年龄大于计算机系平均年龄的学生的姓名和年龄。
(15) 查询计算机系考试成绩小于总平均分的学生的学号、姓名。
(16) 查询计算机系男生‘VB’考试成绩小于‘VB’平均分的学生的学号、姓名。
(17) 查询选修了‘VB’的学生的选课门数以及平均成绩,要求只列出平均成绩大于70且选课门数超过2门的情况。
(18) 查询选课门数超过学生的平均选课门数的学生的姓名。
(19) 将考试成绩最低的并且不及格学生的最低修课成绩改为。
(20) 将数据库基础考试成绩最低的且成绩为不及格学生的数据库考试成绩改为60。
(21) 删除计算机系“计算机网络”课程的全部选课记录。
(22) 删除vb考试成绩最低的两个学生的vb考试记录。
(23) 对数据库考试成绩进行如下修改:如果成绩低于60分,则提高10%;如果成绩在60到80之间,则增加6%;如果成绩在80到95之间则提高4%,其他情况不提
高。
(24) 对学分进行如下修改:如果是第1到第3学期开始的课程,则学分增加1分;如果是第4到第6学期开设的课程,学分增加2分,其他学期开始的课程学分增加3分。
用子查询完成如下查询:
(25) 查询男生年龄最大的学生的姓名和所在系。
(26) 查询选修了‘数据库基础’的学生的姓名、所在系。
(27) 选修了第6学期开始的课程的学生的学号、姓名和所在系。
(28) 查询男生所修的课程的课程名。
(29) 查询年龄最小的学生所选的课程名。
查询那些学生仅选修了数据库基础课程,请显示学生的学号。