- 13
- 0
- 约4.98千字
- 约 7页
- 2017-02-09 发布于江苏
- 举报
数据库课堂练习全(答案全)供参习
一.以下涉及的教学数据库含有4个关系,方便起见,其名称简化为T、S、C和SC
教师关系 T(Tno,Tname,Title)
学生关系 S(Sno,Sname,Age,Sex)
课程关系 C(Cno,Cname,Tno)
选课关系 SC(Sno,Cno,Score)
查询选修了课程号为C2课程的学生学号和姓名
查询至少选修了钟教授所教课程中一门课程的学生学号和姓名。
查询不选修C2课程的学生姓名和年龄。
查询选修了全部课程的学生姓名。
查询至少有学号为S2和S4学生选修的课程的课程号。
解:1.ΠSno,Sname(6Cno=’C2’(SSC))
2.ΠSno,Sname(6Tname=’钟’(SSCTC))
3.ΠSname,Age(S)——ΠSname,Age(6Cno=’C2’(SSC))
4.ΠSname(S (ΠSno,Cno(SC)))——ΠCno(C))
5.ΠCno(61.Sno=’S2’∧2.Sno=’S4’∧(SC*SC))
二、以下涉及的教学数据库含有4个关系,方便起见,其名称简化为T、S、C和SC
教师关系 T(Tno,Tname,Title)
学生关系 S(Sno,Sname,Age,Sex)
课程关系 C(Cno,Cname,Tno)
选课关系 SC(Sno,Cno,Score)
要求检索女同学选修课程的课程名和任课教师名。
试写出该查询的关系代数表达式
Πcname,Tname(sex=女(SSCCT))
画出查询表达式的语法树
使用启发式优化算法,对语法树进行优化,并画出优化后的语法树
三、用SQL完成下面的查询和操作
查询不选修C2课程的学生姓名和年龄。
查询至少选修课程号C2和C4的学生学号。
求每一教师每门课程的学生选修人数(超过30人),要求显示教师工号、课程号和学生人数。查询结果按人数升序排列,人数相同按工号升序、课程号按降序排列。
查询只开设一门课程的教师工号和姓名。
把平均成绩大于80分的男同学的学号和平均成绩存入另一个已存在的表S_Score(Sno,AVG_Score)中。
解:1.不选C2的姓名和年龄
select Sname,Sage
from S,SC
Where s.sno=sc.sno and c.cno not in ‘C2’;
2.至少选修C2,C4的学号
select A.sno
from sc as A scasB
where A.sn=B.sno and A.cno=’C2’ and B.cno=’C4’
3.select Tno c.Cno,count(Sno)
from C,SC
where C.Cno=SC.Cno
group by Tno, C.Cno having count(s.sno)30
order by count(s.sno), Tno,C.Cno DESC
4.select Tno, Tname
from T
where Unique(
select Tno
from C
where C.Tno=T.Tno)
5.Insert into S_Score(Sno,AVG_Score)
select Sno, avg(Score)
from SC
where Sno(
select Sno
from S
where Sex=’男’)
group by Sno
having Arg(Score)80
四、设某商业集团数据库中有三个实体集。一是“商店”实体集,属性有商店编号、商店名、地址等;二是“商品”实体集,属性有商品号、商品名、规格、单价等;三是“职工”实体集,属性有职工编号、姓名、性别、业绩等。商店与商品间存在“销售”联系,每个商店可销售多种商品,每种商品也可放在多个商店销售,每个商店销售一种商品,有月销售量;商店与职工间存在着“聘用”联系,每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期和月薪。
试画出ER图,并在图上注明属性、联系的类型。
将ER图转换成关系模型,并注明主键和外键。
商店 商店编号 商店名 地址
商品 商品号 商品名 规格 单价
销售 商店编号 商品号
职工 职工编号 姓名 性别 业绩
五、查询计算机学生选修的所有课程名称
写出SQL
画出查询树、语法树,利用代数优化对原始语法树进行优化,画出优化语法树
答:1.SQL:select cname
From s,sc,c
where c.cno=sc.cno and
原创力文档

文档评论(0)