数据库习题答案.docx
《数据库习题答案.docx》由会员分享,可在线阅读,更多相关《数据库习题答案.docx(12页珍藏版)》请在冰豆网上搜索。
数据库习题答案
第四章
第七题
(1)市场部所有职工的视图。
createviewsc_employee职工号,姓名,工资)
as
select职工号,姓名,工资
from职工
where部门号in
(select部门号from部门where部门名=‘市场部’)
⑵所有部门经理的视图。
createviewManager职工号,姓名,工资)
as
select职工.职工号,姓名,工资
from职工,部门
where职工.职工号=部门•部门经理职工号
第八题
1.查询姓李的男同学的人数。
selectcount(sno)
fromstudent
wheresnamelike李%'andssex=^f'
2.查询003号课程的最低分
selectmin(grade)
fromsc
whereeno二003'
3.查询每位同学的平均分。
selectsno,avg(grade)
fromse
groupbysno
4.查询每位同学选修的课程门数。
selectsno,count(cno)
fromsc
groupbysno
5.查询总分最高的学生的学号
selecttop1sno,sum(grade)
fromsc
groupbysno
orderbysum(grade)desc
或者
selectsno,sum(grade)
fromsc
groupbysno
havingsum(grade)=
(selecttop1sum(grade)
fromsc
groupbysnoorderbysum(grade)desc
)
6.查询至少选修三门课程的学生学号
selectsno
fromsc
groupbysno
havingcount(cno)>=3
7.统计有学生选修的课程门数
selectcount(distineteno)
fromsc
8统计每门课程的学生选修人数(超过20人的课程才统计)。
要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列
SELECTcno,COUNT(sno)
FROMsc
GROUPBYeno
HAVINGCOUNT(sno)>=20
ORDERBYCOUNT(sno)DESC,cno
9.查询数据库原理与应用80分以上的同学的姓名
SELECTsname
WHEREcname=数据库原理与应用’ANDgrade>0
ANDstudent.sno二sc.snoANDcourse.cno二sc.cno
10•查询每门课程的课程名及选修人数
SELECTcname,COUNT(sno)
FROMsc,course
WHEREsc.cno二course.cno
GROUPBYcname
11.查询总学分已超过30学分的学生学号、姓名、总学分
SELECTstudent.sno,sname,SUM(ccredit)
FROMstudent,course,sc
WHEREstudent.sno二sc.snoANDcourse.cno二sc.cno
GROUPBYsname,student.sno
HAVINGSUM(ccredit)>=30
12.查询张明同学没有选修的课程号
selecteno
fromcourse
whereenonotin
(selecteno
fromsc
wheresnoin
fromstudent
wheresname二张明'))
13•查询选修课程包含李慧老师所授课程的学生学号
SELECTSno
FROMStudent
WHERENOTEXISTS
(SELECT*
FROMcourse
WHEREtname二李慧’AND
NOTEXISTS
(SELECT*
FROMSC
WHERESno二Student.SnoAND
Cno二course.Cno))
14.查询选修008号课程的学生的平均年龄
SELECTAVG(sage)
FROMstudent,sc
WHEREstudent.sno二sc.snoANDcno=008'‘
15•查询李慧老师讲授的每门课程的学生平均成绩
SELECTcname,A/G(grade)
WHEREcourse.cno二sc.cnoANDtname二李慧
GROUPBYcname
第九题
1、向Student表增加一条记录
INSERTINTOStudent
VALUER'021710146','王飞’,’男’,22,'计算机’)
2、在student表中删除李明同学的信息
DELETE
FROMStudent
WHERESname^明’
3、查询每一门课程成绩都在80分以上的学生学号、姓名和性别,并
把查询结果存入表Student2(Sno,SnameSsex)
INSERTINTOStudent2(Sno,Sname,Ssex)
SELECTStudent.Sno,Sname,Ssex
FROMStudent,Sc
WHEREstudent.sno二sc.sno
GROUPBYStudent.Sno,Sname,Ssex
HAVINGMIN(Grade)>=80
4、在Sc中删除成绩为空的元组
DELETEFROMSc
WHEREGradeISNULL
5、删除王娜同学的选课记录
DELETEFROMSc
WHERESnoIN(
SELECTSno
FROMStudent
WHERESname=e娜’)
6、把选修数据库不及格的成绩全改为空值
UPDATESc
SETGrade二NULL
WHEREGrade<60ANDCnoIN
(SELECTCno
FROMCourse
WHERECname=数据库’
)
10%
7、把低于总平均成绩的女同学成绩提高
UPDATESc
SETGrade二Grade*1.1
WHERESnoIN(
SELECTSno
FROMStudent
WHERESsex=女’)
ANDGrade<
(SELECTAVG(Grade)
)
8在基本表sc中修改005号课程的成绩,若成绩小于等于75分时
提高5%
UPDATESc
SETGrade二Grade*(1+0.05)
WHEREGrade<=75ANDCn6=005'
第五章
第三题
createtable顾客
(顾客编号char(15)primarykey,
姓名char(12),
性别char
(2),
联系电话char(11)
)
createtable商店
(商店编号char(10)primarykey,
商店名char(20),
地址char(30),
电话char(20)
)createtable购买
(顾客编号char(15)foreignkeyreferences顾客(顾客编号),
商店编号char(10)foreignkeyreferences商店(商店编号),消费金额float,
日期datetime,
primarykey(顾客编号,商店编号,日期)
)
第六章作业
1•统计某门课学生的平均分,如果平均分在70以上,输出前三名学生成绩;如果平均分在70以下,输出后三名学生成绩。
(IF…EISE)if(selectavg(grade)fromscwhereeno二'005')>70
selecttop3grade
fromsc
whereeno二'005'
orderbygradedesc
else
selecttop3grade
fromsc
whereeno二'005'
orderbygrade
2•将学生的成绩改为ABCDE五级制。
(CASE)
selectsno,casewhengrade>=90then'A'
whengrade>=80then'B'
whengrade>=70thenC
whengrade>=60then'D'
else'E'
end
fromsc
第七章(推导的作业略)
第六题(求闭包的过程略)
1•关系模式R的候选码是AB,主属性是A和B,非主属性是C和D2•存在A-D,即非主属性对候选码的部分函数依赖,因此只能达到第一范式1NF。
第七题(求闭包的过程略)
1•关系模式R的候选码是C,主属性是C,非主属性是A和B。
2•因为候选码中只有一个属性,因此肯定达到第二范式2NF。
3存在C-B,B-A,即非主属性对候选码的传递函数依赖,因此只能达到第二范式2NF。
第八题
1•首先分解右端,分解为{A-B,A-C,B-A,B-C,C-A}
2•逐个函数依赖分析
(1)去掉A—B,F变为G={A—C,B—A,B—C,C—A},Af+=AC,不能去掉,F不变。
⑵去掉A—C,F变为G={A—B,B—A,B—C,C—A},Af+=ABC,可以去掉,F变为{A—B,B—A,B—C,C—A}。
⑶去掉B—A,F变为G={A—B,B—C,C—A},Bf+=ABC,可以去掉,F变为{A—B,B—C,C—A}。
⑷去掉B—C,F变为G={A—B,C—A},Bf+=B,不能去掉,F不变。
(5)去掉C—A,F变为G={A—B,B—C},Cf+=C,不能去掉,F不变。
最小函数依赖集为{A—B,B—C,C—A}。
第八章
第三题
商店(商店编号,商店名,地址,电话)购物(顾客编号,商店名称,日期,消费金额)
第四题
转化后的关系模式如下:
工厂(工厂编号,厂名,地址)
产品(产品编号,产品名,规格)
职工(职工号,姓名,工厂编号,聘期,工资)
生产(工厂编号,产品编号,计划数量)
每个关系模式的主码如下:
工厂:
主码是工厂编号;
产品:
主码是产品编号;
职工:
主码是职工号;外码是工厂编号;
生产:
主码是(工厂编号,产品编号);外码1是工厂编号,外码2是产品编号。
Whenyouareoldandgreyandfullofsleep,
Andnoddingbythefire,takedownthisbook,
Andslowlyread,anddreamofthesoftlook
Youreyeshadonce,andoftheirshadowsdeep;
Howmanylovedyourmomentsofgladgrace,
Andlovedyourbeautywithlovefalseortrue,
Butonemanlovedthepilgrimsoulinyou,
Andlovedthesorrowsofyourchangingface;
Andbendingdownbesidetheglowingbars,
Murmur,alittlesadly,howlovefled
Andpaceduponthemountainsoverhead
Andhidhisfaceamidacrowdofstars.
Thefurthestdistaneeintheworld
Isnotbetweenlifeanddeath
ButwhenIstandinfrontofyou
Yetyoudon'tknowthat
Iloveyou.
Thefurthestdistaneeintheworld
IsnotwhenIstandinfrontofyou
Yetyoucan'tseemylove
Yetcannotbetogether.
Thefurthestdistaneeintheworld
Isnotbeingapartwhilebeinginlove
ButwhenIplainlycannotresisttheyearning
Yetpretendingyouhaveneverbeeninmyheart.
Thefurthestdistaneeintheworld
Isnotstrugglingagainstthetides
Butusingone'sindifferentheart
Todiganuncrossableriver
Fortheonewholovesyou.