数据库第三章部分习题答案Word格式.docx

上传人:b****1 文档编号:1546843 上传时间:2023-04-30 格式:DOCX 页数:11 大小:25.93KB
下载 相关 举报
数据库第三章部分习题答案Word格式.docx_第1页
第1页 / 共11页
数据库第三章部分习题答案Word格式.docx_第2页
第2页 / 共11页
数据库第三章部分习题答案Word格式.docx_第3页
第3页 / 共11页
数据库第三章部分习题答案Word格式.docx_第4页
第4页 / 共11页
数据库第三章部分习题答案Word格式.docx_第5页
第5页 / 共11页
数据库第三章部分习题答案Word格式.docx_第6页
第6页 / 共11页
数据库第三章部分习题答案Word格式.docx_第7页
第7页 / 共11页
数据库第三章部分习题答案Word格式.docx_第8页
第8页 / 共11页
数据库第三章部分习题答案Word格式.docx_第9页
第9页 / 共11页
数据库第三章部分习题答案Word格式.docx_第10页
第10页 / 共11页
数据库第三章部分习题答案Word格式.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据库第三章部分习题答案Word格式.docx

《数据库第三章部分习题答案Word格式.docx》由会员分享,可在线阅读,更多相关《数据库第三章部分习题答案Word格式.docx(11页珍藏版)》请在冰点文库上搜索。

数据库第三章部分习题答案Word格式.docx

groupbys#

havingcount(c#)>

=2;

3.2.5检索至少有学号为S2和S4所学的课程和课程名

selectc#,cname

wherec#in((selectc#

fromscwheres#='

S2'

intersect

(selectc#fromscwheres#='

S4'

));

3.2.6检索‘WANG’同学不学的课程号

selectc#fromc

except

(selectdistinctc#

fromsc

wheres#=(selects#fromswheresname='

WANG'

));

3.2.7检索全部学生都选修的课程号和课程名

fromc

wherenotexists(selects#

froms

wherec.c#notin(selectc#fromscwheresc.s#=s.s#));

3.2.8检索选修课程包含'

LIU'

老师所授课程的全部课程的学生的学号和姓名

selects#,sname

wherenotexists((selectc#

fromc

wheret#=(selectt#

fromt

wheretname='

))except(selectc#fromscwheresc.s#=s.s#));

3.4设有两个基本表R(A,B,C)和S(A,B,C),试用SQL查询语句表达下列关系代数表达式:

R∪S

R∩S

R-S④R×

S⑤πA,B(R)πB,C(S)

⑥π1,6(σ3=4(R×

S)⑦π1,2,3(RS)⑧R÷

πC(S)

解:

①(SELECT*FROMR)

UNION

(SELECT*FROMS);

②(SELECT*FROMR)

INTERSECT

(SELECT*FROMS);

③(SELECT*FROMR)

MINUS

④SELECT*

FROMR,S;

⑤SELECTR.A,R.B,S.C

FROMR,S

WHERER.B=S.B;

⑥SELECTR.A,S.C

WHERER.C=S.A;

⑦SELECTR.*(R.*表示R中全部属性)

WHERER.C=S.C;

⑧R÷

πC(S)的元组表达式如下:

{t|(∃u)(∀v)(∃w)(R(u)∧S(v)∧R(w)∧w[1]=u[1]∧w[2]=u[2]∧w[3]=v[3]∧t[1]=u[1]∧t[2]=u[2])}

据此,可写出SELECT语句:

SELECTA,B

FROMRRX

WHERENOTEXISTS

(SELECT*

FROMS

FROMRRY

WHERERY.A=RX.AANDRY.B=RX.BANDRY.C=S.C));

3.6试叙述SQL语言的关系代数特点和元组演算特点。

答:

SQL的关系代数特点如下:

1有关系代数运算的并、交、差、自然联接等运算符;

2FROM子句体现了笛卡尔积操作,WHERE子句体现了选择操作,SELECT子句体现了投影操作。

SQL的元组演算特点如下:

1FROM子句中的基本表名应视为“元组变量”,属性名应视为“元组分量”;

2有存在量词EXISTS符号。

3.12试用SQL更新语句表达对3.2题教学数据库中关系S、SC、C的更新操作:

往关系C中插一个课程元组('

C8'

,'

VC++'

T6'

)。

检索所授每门课程平均成绩均大于80分的教师姓名,并把检索到的值送往另一个已存在的表FACULTY(TNAME)。

在SC中删除尚无成绩的选课元组。

把选修LIU老师课程的女同学选课元组全部删去。

把MATHS课不及格的成绩全改为60分。

把低于所有课程总平均成绩的女同学成绩提高5%。

在表SC中修改C4课程的成绩,若成绩小于等于70分时提高5%,若成绩大于70分时提高4%(用两种方法实现,一种方法是用两个UPDATE语句实现,另一种方法是用带CASE操作的一个UPDATE语句实现)。

⑧在表SC中,当某个成绩低于全部课程的平均成绩时,提高5%。

①INSERTINTOC

VALUES('

);

②INSERTINTOFACULTY(TNAME)

SELECTDISTINCTTEACHER

FROM(SELECTTEACHER,C.C#,AVG(GRADE)

FROMS,SC

WHERESC.C#=C.C#

GROUPBYTEACHER,C.C#)

ASRESULT(TEACHER,C#,AVG_GRADE)ASX

WHERE80<

=ALL(SELECTAVG_GRADE

FROMRESULTASY

WHEREY.TEACHER=X.TEACHER);

③DELETEFROMSC

WHEREGRADEISNULL;

④DELETEFROMSC

WHERES#IN(SELECTS#FROMSWHERESEX='

F'

ANDC#IN(SELECTC#FROMCWHERETEACHER='

⑤UPDATESC

SETGRADE=60

WHEREGRADE<

60

ANDC#IN(SELECTC#FROMCWHERECNAME='

MATHS'

⑥UPDATESC

SETGRADE=GRADE*1.05

ANDGRADE<

(SELECTAVG(GRADE)FROMSC);

⑦用两个UPDATE语句实现:

UPDATESC

SETGRADE=GRADE*1.04

WHEREC#='

C4'

ANDGRADE>

70;

ANDGRADE<

=70;

(这两个UPDATE语句的顺序不能颠倒。

用一个UPDATE语句实现:

SETGRADE=GRADE*CASE

WHENGRADE>

70THEN1.04

ELSE1.05

END

⑧UPDATESC

SETGRADE=GRADE*1.05

WHEREGRADE<

(SELECTAVG(GRADE)

FROMSC);

3.13设数据库中有三个关系:

职工表EMP(E#,ENAME,AGE,SEX,ECITY),

其属性分别表示职工工号、姓名、年龄、性别和籍贯。

工作表WORKS(E#,C#,SALARY),

其属性分别表示职工工号、工作的公司编号和工资。

公司表COMP(C#,CNAME,CITY),

其属性分别表示公司编号、公司名称和公司所在城市。

试用SQL语句写出下列操作:

①用CREATETABLE语句创建上述三个表,需指出主键和外键。

②检索超过50岁的男职工的工号和姓名。

③假设每个职工只能在一个公司工作,检索工资超过1000元的男性职工工号和姓名。

④假设每个职工可在多个公司工作,检索在编号为C4和C8公司兼职的职工工号和姓名。

⑤检索在“联华公司”工作、工资超过1000元的男性职工的工号和姓名。

⑥假设每个职工可在多个公司工作,检索每个职工的兼职公司数目和工资总数.显示(E#,NUM,SUM

_SALARY),分别表示工号、公司数目和工资总数。

⑦工号为E6的职工在多个公司工作,试检索至少在E6职工兼职的所有公司工作的职工工号。

⑧检索联华公司中低于本公司平均工资的职工工号和姓名。

⑨在每一公司中为50岁以上职工加薪100元(若职工为多个公司工作,可重复加)。

⑩在EMP表和WORKS表中删除年龄大于60岁的职工有关元组。

①CREATETABLEEMP

(E#CHAR(4)NOTNULL,

ENAMECHAR(8)NOTNULL,

AGESMALLINT,

SEXCHAR

(1),

ECITYCHAR(20),

PRIMARYKEY(E#));

CREATETABLECOMP

(C#CHAR(4)NOTNULL,

CNAMECHAR(20)NOTNULL,

CITYCHAR(20),

PRIMARYKEY(C#));

CREATETABLEWORKS

C#CHAR(4)NOTNULL,

SALARYSMALLINT,

PRIMARYKEY(E#,C#),

FOREIGNKEY(E#)REFERENCESEMP(E#),

FOREIGNKEY(C#)REFERENCESCOMP(C#));

②SELECTE#,ENAME

FROMEMP

WHEREAGE>

50ANDSEX='

M'

③SELECTEMP.E#,ENAME

FROMEMP,WORKS

WHEREEMP.E#=WORKS.E#ANDSALARY>

1000;

④SELECTA.E#,A.ENAME

FROMEMPA,WORKSB,WORKSC

WHEREA.E#=B.E#ANDB.E#=C.E#

ANDB.C#='

ANDC.C#='

⑤SELECTA.E#,A.ENAME

FROMEMPA,WORKSB,COMPC

WHEREA.E#=B.E#ANDB.C#=C.C#

ANDCNAME='

联华公司'

ANDSALARY>

1000

ANDSEX='

⑥SELECTE#,COUNT(C#)ASNUM,SUM(SALARY)ASSUM_SALARY

FROMWORKS

GROUPBYE#;

⑦SELECTX.E#

FROMWORKSX

(SELECT*

FROMWORKSY

WHEREE#='

E6'

ANDNOTEXISTS

FROMWORKSZ

WHEREZ.E#=X.E#

ANDZ.C#=Y.C#));

⑧SELECTA.E#,A.ENAME

ANDCNAME='

ANDSALARY<

(SELECTAVG(SALARY)

FROMWORKS,COMP

WHEREWORKS.C#=COMP.C#

⑨UPDATEWORKS

SETSALARY=SALARY+100

WHEREE#IN(SELECTE#FROMEMPWHEREAGE>

50);

⑩DELETEFROMWORKS

WHEREE#IN(SELECTE#FROMEMPWHEREAGE>

60);

DELETEFROMEMP

WHEREAGE>

60;

如有侵权请联系告知删除,感谢你们的配合!

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2