考试试卷
2005 -- 2006 学年 1 学期
《数据库技术》课程设计课程 40 学时 2 学分考试形式: 开 卷 专业年级:信管、金融、工商等,2004级
1、 对于教学数据库(TEACH)构造3个基本表:
S(SNUM,SNAME,SDEPT,AGE,SEX);( 注:SDEPT为“学生所属系/院名”) C(CNUM,CNAME,TEACHER,PCNUM);( 注:PCNUM为“先修课程编号”)
SC(SNUM,CNUM,GRADE);
(1) 创建教学数据库:学生信息表、课程信息表、学生选课表;
(2) 为每个基表添加多条记录(自己添加,所添加的数据要能够满足以下各题的查询要求);
(3) 检索年龄大于23岁的男学生的学号和姓名;气胀式救生衣
(4) 检索’liu’老师所授课程的课程号和课程名;
(5) 检索学号为’S3’的学生所学课程的课程名与任课教师名;
(6) 检索至少选修’liu’老师所授课程中一门课程的男学生姓名; (7) 检索没有选修’liu’老师所授课程的女学生姓名和学号;
(8) 检索’wang’同学不学的课程的课程号;
(9) 检索至少选修两门课程的学生的姓名和学号;
(10) 检索全部学生都选修的课程的课程号与课程名;
(11) 卫星接收检索选修课程包含’liu’老师所授课程的学生学号;
(12) 在表C中统计开设课程的教师人数;
(13) led柔性霓虹灯求选修’C4’课程的女学生的平均年龄;
(14) 求每个学生选修课程(已有成绩)的门数和平均成绩; (15) 统计每个学生选修课程的门数(超过5门的学生才统计),要求输出学生学号和选修门数,查询结果按门数降序,若门数相同,按学号升序;
(16) 检索学号比’wang’同学大,而年龄比他小的学生姓名;
(17) 在表SC中检索成绩为空的学生学号和课程号;
(18) 检索姓名以L打头的所有学生的姓名和年龄;
(19) 求年龄大于女同学平均年龄的男学生姓名和年龄;
(20) 求年龄大于所有女同学年龄的男学生姓名和年龄;
(21) 检索所授课程平均成绩大于80分的教师姓名,并将检索到的值送往另一个表FACULTY(TNAME);(注:该表由学生自己创建)
(22) 在SC中删除尚无成绩的选课元组;
(23) 将选修’liu’老师课程的女同学选课元组全部删除;
(24) 将’MATHS’课不及格的成绩全改为60分;
(25) 将低于所有课程总平均成绩的女同学成绩提高5%;
(26) 在表SC中修改’C4’课程的成绩,若成绩小于等于70分时提高5%,若成绩大于70分时提高4%;
(27) 在表SC中,当某个成绩低于全部课程的平均成绩时,提高5%;
(28) 求男同学每一年龄的人数;
(29) 求女同学的人数和平均年龄及平均成绩;
(30) 检索开设两门以上课程的教师姓名;
(31) 检索未选修’wang’老师所授全部课程的学生学号;
(32) 统计选修每一门课程的男女学生人数和平均成绩,要求显示(C#,CNAME,TEACHER,SEX,NUM,AVG_GRADE),其中NUM和AVG_GRADE为人数和平均成绩。
2、 对于图书发行数据库(B_PUBLISH)构造4个基本表: STORE(SNO,SNAME,ADDRESS) ;( 注:STORE为“书店”)
LIBRARY(LNO,LNAME,CITY,TEL);( 注:LIBRARY为“图书馆”)
BOOK(BNO,BNAME,PRICE) ;( 注:BOOK为“图书”)
LBS(LNO,BNO,SNO,QTY); ( 注:LBS为“馆藏”;QTY为“数量”)
(1)创建图书发行数据库:书店信息表、图书馆信息表、图书信息表、馆藏信息表;
(2)为每个基表添加多条记录(自己添加,所添加的数据要能够满足以下各题的查询要求);
(3)查’L1’从书店’S1’购买的图书书号及其册数;
(4)取出馆址在’Shanghai’的馆名及电话号码;
(5)取出’S3’发行的图书书名和数量;
(6)取出已发行图书中最贵和最便宜的那种书的书名和定价;
(7)查购买图书’B4’最多的图书馆馆名;
(8)取出’L4’ 收藏图书的书名;
(9)取出收藏图书’情报检索语言’的馆名;
(10)将’B5’的单价更改为32.50元;
(11)删去’B2’及其相关的馆藏记录;
(水平除雾器12)将(‘B6’,’人工智能原理’,42.00)登入关系BOOK。
3、实验结束时提交《课程设计报告》,内容包含:
(1)列出每个基表的结构及记录构成;
(2)对第2大题的每小题,均要求用关系代数表示;
(3)用SQL Server 2000语句完成每一题;
(4)每题的结果。
中南大学考试试卷答案
2005 -- 2006 学年 1 学期 时间2周
《数据库技术》课程设计课程 40 学时 2 学分考试形式: 开 卷
专业年级:信管、金融、工商等,2004级
注:此页不作答题纸,请将答案写在答题纸上
3、 对于教学数据库(TEACH)构造3个基本表:
S(SNUM,SNAME,SDEPT,AGE,SEX);( 注:SDEPT为“学生所属系/院名”)
C(CNUM,CNAME,TEACHER,PCNUM);( 注:PCNUM为“先修课程编号”太阳能热水器控制器)
SC(SNUM,CNUM,GRADE);
(33) 创建教学数据库:学生信息表、课程信息表、学生选课表;
(34) 为每个基表添加多条记录(自己添加,所添加的数据要能够满足以下各题的查询要求)
1\检索年龄大于23岁的男学生的学号和姓名;
select snum,sname from s where age>23 and sex='男'
2-检索’liu’老师所授课程的课程号和课程名;
select cnum,cname from c where teacher='liu'
3检索学号为’S3’的学生所学课程的课程名与任课教师名;
select acher from c,sc where cum=scum and sc.snum='s3'
4\检索至少选修’liu’老师所授课程中一门课程的男学生姓名;
select sname from s where snum in勒夫波
(select snum from sc where cnum in
(select cnum from c where teacher='liu'))
and sex='男'
5检索没有选修’liu’老师所授课程的女学生姓名和学号;
select sname,snum from s where snum not in
(select snum from sc where cnum in
(select cnum from c where teacher='liu'))
and sex='女'
6\检索’wang’同学不学的课程的课程号;
select cnum from c where cnum not in
(select cnum from sc where snum in
(select snum from s where sname='wang'))
7检索至少选修两门课程的学生的姓名和学号;
select sname,snum from s where snum in
(select snum from sc group by snum having count(*)>=2)
8检索全部学生都选修的课程的课程号与课程名;
select cnum,cname from c where not exists
(select * from s where not exists
(select * from sc where snum=s.snum and cnum=cum))
9检索选修课程包含’liu’老师所授课程的学生学号;
select distinct sc.snum from sc,c where scum=cum acher='liu'
10-在表C中统计开设课程的教师人数;
select count(distinct teacher) teacher_num from c
11-求选修’C4’课程的女学生的平均年龄;
select avg(age) avg_age from sc,s
where sc.snum=s.snum and scum='c4' and sex='女'
12--求每个学生选修课程(已有成绩)的门数和平均成绩;
select snum,count(*) num,avg(grade) avg_grade from sc
where grade is not null group by snum
13--统计每个学生选修课程的门数(超过5门的学生才统计),要求输出学生学号和选修门数,查询结果按门数降序,若门数相同,按学号升序;
select snum,count(*) from sc
group by snum having count(*)>5
order by count(*) desc,snum
14检索学号比’wang’同学大,而年龄比他小的学生姓名;
select sname from s where snum>(select snum from s where sname='wang')
and age<(select age from s where sname='wang')
15在表SC中检索成绩为空的学生学号和课程号;
select snum,cnum from sc where grade is null
16检索姓名以L打头的所有学生的姓名和年龄;
select sname,age from s where sname like 'l%'
17求年龄大于女同学平均年龄的男学生姓名和年龄;
select sname,age from s where sex='男'
and age>(select avg(age) from s where sex='女')
18求年龄大于所有女同学年龄的男学生姓名和年龄;
select sname,age from s where sex='男'
and age>(select max(age) from s where sex='女')