数据库原理与应用 教学课件 作者 林 小 玲第3章习题答案_第1页
数据库原理与应用 教学课件 作者 林 小 玲第3章习题答案_第2页
数据库原理与应用 教学课件 作者 林 小 玲第3章习题答案_第3页
数据库原理与应用 教学课件 作者 林 小 玲第3章习题答案_第4页
数据库原理与应用 教学课件 作者 林 小 玲第3章习题答案_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章习题答案

一、填空题

1.在SQL语言的结构中,基本表一有对应的物理存储,而一视图一没有对应的物

理存储。

2.SQL语言中,向数据库表中插入数据的命令是:INSERT.

3.SQL语言中,对用户授权使用(GRANT)语句,而取消所授的权限使用(REVOKE)

语句。

4.SQL的中文全称是:StructuredOueryLanguage。

5.SQL除了具有数据查询和数据操纵功能外,还具有数据定义和数据控制功能。

6.在SOL语言中,实现数据检索的语句是SELECT。

7.关系R(A,B,C)和S(A,D,E,F)有相同的属性A,关系代数表达式RRAB.D.F(RXS)

可用SQL的查询语句表达为:

SELECTR.A,B,D,F

FROMR,S

WHERER.A=S.A

8.视图是从基本表一中导出的表,数据库中实际存放的是视图的是

9.设有关系表R(BH,XM,XB,DWH)、S(DWH,DWM)、T(BH,XM,XB,DWH),

贝U:

(1)实现RUT的SQL语句是:

SelectBH,XM,XB,R.DWH,DWM

FromR,S

WhereR.DWH=S.DWH;

(2)实现ODWH=W(R)的SQL语句是:

Select*

FromR

WhereDWH=,100';

(3)实现I1XM,XB(R)的SQL语句是:

SelectXM,XB

FromR

(4)实现FIxM,Dwn(bxn・w(R))的SQL语句是:

SelectXM,DWH

FromR

WhereXB=,女,;

(5)实现RxS的SQL语句是:

Select*

FromR,S

WhereR.DWH=S.DWH;

(6)实现rixM,XB,DWH(<JXB=*W(RxS))的SQL语句是:

SelectXM,XB,DWH

FromR.S

WhereR.DWH=S.DWHandXB=,男二

10.设有学生关系S(No,Name,Sex,Age,Class),其中,No是学号,Name是姓

名,Sex是性别,Age是年龄.Class是班级,No和Age为整型,其余为字符型,则:

(1)实现插入记录(25「李明,,,男,21,95031')的SQL语句是:

INSERT

INTOS(No,Name,Name,Age,Class)

VALUES(25,,李明,,’男,,21,'95031');

(2)插入,95031,班学号为30、姓名为‘郑和'的学生记录,要用的SQL语句是:

INSERT

INTOS(No,Name,Class)

VALUES(30,'郑和',95031');

(3)实现将学号为10的学生姓名改为,王华,、性别改为,女,的SQL语句是:

UPDATES

SETName:,王华',Sex=,女,

WHEREno=10;

(4)实现将班级,9510「改为,95091,的SQL语句是:

UPDATES

SETClass=/9509P

WHEREClass=,95101,;

(5)实现删除学号为20的学生记录的SQL语句是:

DELETE

FROMS

WHEREno=20;

(6)实现删除所有姓,王,的学生记录的SQL语句是:

DELETE

FROMS

WHEREName=likcz王%';

二、单项选择题

1.SQL语言是」o

A.过程化语言B.宿主语言C.汇编语言D.非过程化语言

2.在视图上不能完成的操作是一C.

A.更新视图B.查询

C.在视图上定义基本表D.在视图上定义新的视图

3.SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中CREATE.

DROP、ALTER语句实现C功能。

A.数据查询B.数据操纵C.数据定义D.数据控制

4.在SQL语言中,删除一个视图的命令是」

A.DELE1EB.DROPC.CLEARD.REMOVE

5.在SQL语言中,视图对应于数据库的-。

A.外模式B.模式C.内模式D.存储模式

6.在下列SQL语句中,D不是数据定义语句。

A.CREATETABLEB.DROPVIEW

C.CREATEVIEWD.GRANT

7.若要除去数据库中已经存在的表S,可用A0

A.DELETETABLESB.DELETES

C.DROPTABLESD.DROPS

8.若要在基本表S中增加一列CN,可用—o

A.ADDTABLES(CNCHAR(8))

B.ADDTABLESALTER(CNCHAR(8))

C.ALTERTABLESADD(CNCHAR(8))

D.ALTERTABLES(ADDCNCHAR(8))

9.若要删除关系模式S(Sno,Sname,Ssex,Sage)的Sage属性,可用B。

A.DELETESageFROMSB.ALTERTABLESDROPSage

C.UPDATESSageD.ALTERTABLES4Sage)

10.设有学生关系S(Sno,Sname,Sage),课程关系C(Cno,Cname),选修关系SC(Sno,Cno,

Grade),其中Sno是学号,Sname是学生姓名,Sage是学生年龄,Cno是课程号,Cname

是课程名,Grade是成绩。要杳询选修了“ACCESS”课程的年龄不小于20的全体学生姓名,

可用SELECTSNAMEFROMS,C,SCWHEREA语句实现。

A.S.Sno=SC.SnoandC.Cno=SC.CnoandSage>=20andCname='ACCESS,

B.S.Sno=SC.SnoandC.Cno=SC.CnoandSagein>=20andCnamein'ACCESS'

C.Sagein>=20andCnamein'ACCESS'

D.Sagein>=20andCname='ACCESS'

11.设关系数据库中表S的结构是S(SN,CN,GRADE),其中SN为学生姓名,CN为课

程名,二者均为字符型;GRADE为成绩,数值型,取值范围。〜100。若要把“张二的化学

成绩为80分''插入S中,则可用。

A.ADDINTOSVALUES('张二化学'80')

B.INSERTINTOSVALUES('张二丁化学'80')

C.ADDINTOSVALUES('张二'化学80)

D.INSERTINTOSVALUES('张二'化学80)

12.设关系数据库中表S的结构是S(SN,CN,GRADE),其中S、为学生姓名,CN为

课程名,二者均为字符型;GRADE为成绩,数值型,取值范围。〜100。若要将张二的化学

成绩改为85分,则可用A。

A.UPDATESSETGRADE=85WHERESN=,张二,andCN士化学’

B.UPDATESSETGRADE=<85<WHERESN='张二,andCN='化学’

C.UPDATEGRADE=85WHERESN=,张二,andCN=,化学’

D.UPDATEGRADE=(85,WHERESN=,张二"ndCN=,化学’

13.在SQL语言中,子杳询是D。

A.返回单表中数据子集的查询语句

B.返回多表中字段子集的查询语句

C.选取单表中字段子集的杳询语句

D.嵌入到另一个查询语句之中的查询语句

14.设有学生关系S(Sno,Sname,Ssex),课程关系C(Cno,Cname),选修关系SC(Sno,Cno,

Grade),其中Sno是学号,Sname是学生姓名,Ssex是学生性别,Cno是课程号,Cname

是课程名,Grade是成绩。要查询选修了“数据库”课程的全体男生姓名,可用SELECTSNAME

FROMS,C,SCWHEREA语句实现。

A.S.Sno=SC.SnoandC.Cno=SC.CnoandSsex=*^*andCname='数据库’

B.S.Sno=SC.SnoandC.Cno=SC.CnoandSsexin'男'andCnamein'数据库'

C.Ssex'男'andCname'数据库'

D.Ssex='男'andCname=’数据库,

15.若用如下的SQL语句创是一个表SC:

CREATETABLESC(SnoCHAR(6)NOTNULL,

CnoCHAR(3)NOTNULL,

GradeINT,

NOTECHAR(20)),

则INSERTINTOSCVALUES可以成功执行。

A.('201009','1H’,60,必修)B.('200823',’101',NULL,NULL)

C.(NULL,'103',80,'选修')D.('201132',NULL,86,“)

16.设有学生关系S(Sno,Sname,Ssex),课程关系C(Cno,Cname),选修关系SC(Sno,Cno,

Grade),其中Sno是学号,Sname是学生姓名,Ssex是学生性别,Cno是课程号,Cname

是课程名,Grade是成绩,,要查询选修了“数据库”课程的男生姓名,/涉及关系D。

A.SB.,S,SCC.C,SCD.S,C,SC

17.在SQL语言中,SELECT子句实现关系代数的」_o

A.投影运算B.选择运算C.连接运算D.交运算

18.在SQL语言中,WHERE子句实现关系代数的」_(,

A.投影运算B.选择运算C.连接运算D.交运算

19.在SQL语言中,为了在查询结果中去掉重复元组,要使用保留字K_o

A.UNIQUEB.COUNTC.DISTINCTD.UNION

20.在SQL语言中,下列涉及空值的操作,不正确的是(其中AGE是一个属

性名]

A.AGEISNULLB.AGEISNOTNULL

C.AGE=NULLD.NOT(AGEISNULL)

21.设有一个关系:DEPT(DNO,DNAME),如果要找出倒数第三个字母为W,并且

至少包含4个字母的DNAME,贝J查询条件子句应写成WHEREDNAMELIKED。

A.'―W_%'B.'_W_%'C.*_W_'D.'_%W―'

22.当SELECT语句涉及多张表时,其WHERE子句需要给出D。

A.仅选择条件B.仅连接条件

C.连接条件或选择条件D.连接条件和选择条件

23.在SQL中,与NOTIN等价的操作符是一D.

A.=ANYB.oANYC.=ALLD.<>ALL

24.在SQL中,SALARYIN(1000.2000)的含义是D“

A.SALARY<=2000ANDSALARY>=1000

B.SALARY<2000ANDSALARY>1000

C.SALARY=2000ANDSALARY=1000

D.SALARY=2000ORSALARY=1000

25.某SQL语句要查找所有姓张的职工,下列涉及条件判断的操作,正确的是一A

A.where姓名like"张%”B.where姓名="张%”

C.where姓名like“张*"D.where姓名like"张?”

26.SQL语句中,下列涉及空值的操作,不正确的是C。

A.SCOREISNULLB.SCOREISNOTNULL

C.SCORE=NULLD.NOT(SCOREISNULL)

27.查询选修了课程号为“C2”的学生中成绩最高的学生的学号,正确的SELECT语

句是C.

A.SELECTSnoFROMSCWHERECno='C2'ANDGRADE>=ALL

(SELECTGRADEFROMSCWHERECno='C2')

B.SELECTSnoFROMSCWHEREGRADEIN

(SELECTMAX(GRADE)FROMSCWHERECno='C2')

=,

C.SELECTSnoFROMSCWHERECnoC2'ANDGRADE二

(SELECTMAX(GRADE)FROMSCWHERECno='C2')

D.SELECTSnoFROMSCWHERECno=C2'ANDGRADE>=ANY

(SELECTGRADEFROMSCWHERECno=,C2')

三、简述题

1.简述SELECT语句中的表别名的用法及作用o

2.在什么情况下一个子查询可以参与表达式运算,试举一个例子。

3.什么是基本表?什么是视图?两者的区别和联系是什么?

答:基本表是本身独立存在的表,在SQL中一个关系就对应一个表。

视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。

即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本

表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以化视图上再定义

视图。

4.所有的视图是否都可以更新?为什么?

答:不是。视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的

更新因为有些视图的更新不能惟一有意义地转换成对相应基本表的更新,所以,并不是所有

的视图都是可更新的。

例如:视图S_G(学生的学号及他的平均成绩)

CREATEVIEWS_G(Sno,Gavg)

ASSELECTSno,AVG(Grade)/*设SC表中"成绩"列Grade为数字型*/

FROMSC

GROUPBYSno;

要修改平均成绩,必须修改各科成绩,而我们无法知道哪些课程成绩的变化导致了平均

成绩的变化。

5.在供应商、零件数据库中有以下3个关系模式:供应商:S(SNO,SNAME,CITY,

STATUS)零件:P(PNO,PNAME,WEIGHT,COLOR,CITY)供应货:SP(SNO,PNO,

QTY)各属性的含义可由属性名体现,不再重复,供应货关系SP表示某供应商SNO,供应

了PNO零件,数量为QTY。用SQL语言完成以下操作:

(1)求供应红色零件的供应商名字;

(2)求北京供应商的号码、名字和状况(STATUS);

(3)求零件P2的总供应量;

(4)把零件P2的重量增加

(5)颜色该为黄色。

(1)求供应红色零件的供应商名字;

SelectSNAME

FromS,P,SP

WhereS.SNO=SP.SNOandP.PNO=SP.PNOandP.COLOR=,红,;

(2)求北京供应商的号码、名字和状况(STATUS);

SelectSNO,SNAME,STATUS

FromS

WhereCITY='北京,;

(3)求零件P2的总供应量;

Selectsum(QTY)

FromSP

WherePNO='P2,

(4)把零件P2的重量增加

UpdataP

SetWE1GHT=WEIGHT+2

WherePNO='P2'

(5)颜色该为黄色。

UpdataP

SetColor='黄'

WherePNO='P2'

6.关系模式如下:

商品P(PNO,PNAME,COLOR,PRICE)

商店S(SNO,SNAME,CITY)

销售SP(PNO,SNO,QTY)

(1)用SQL语句实现如下查询:查询出售商品“TV”的商店名SNAME;

(2)将上述SQL语句转化为等价的关系代数表达式;

(1)SELECTSNAME

FROMS,SP,P

WHERES.SNO=SP.SNOANDP.PNO=SP.PNOANDP.PNAME=“TV”

⑵冗SNAME(bp='TV'(S><SP><P))

四、综合题

1.设某系的教师_授课数据库有三个基本表:教师(教师号,姓名,性别,职称,教研

室);课程(课程号,课程名称,学时);授课(教师号,课程号,选课人数)

其中

1)教师表的主码为教师号

2)课程表的主码为课程号

3)授课表的主码为教师号和课程号,教师号是外码,课程号也是外码

用SQL语句完成如下操作。

(1)定义授课表,并同时定义主码和外码。

(2)查找“基础会计”教研室的教师所讲授的课程名称。

(3)查找讲授了“李军”所讲的所有课程的教师姓名。

(4)查找选修学生最多的课程名称、教师姓名及选课人数。

(5)统计每位教师的教学工作量(即所讲授课程的课时总数)。

答:⑴CREATETABLE授课

(教师号CHAR(8)

课程号CHAR(10)

选课人数SMALLINT);

PRIMARYKEY(教师号,课程号),

/*主码由两个屈性构成,必须作为表级完整性进行定义*/

FOREIGNKEY(课程号)REFERENCES课程(课程号),

r表级完整性约束条件,课程号是外码,被参照表是课程7

FOREIGNKEY(教师号)REFERENCES教师(教师号)

/*表级完整性约束条件,教师号是外码,被参照表是教师*/);

(2)select课程名

From教师,课程,授课

Where授课.课程号=课程.课程号and授课.教师号=教师.教师号and

教师.教研室=“基础会计”;

(3)SELECTDISTINCT姓名

FROM教师

WHERENOTEXISTS

(SELECT*

FROM教师1,授课

WHERE教师1.教师号=授课.教师号AND教师1.姓名='李军'AND

NOTEXISTS

(SELECT*

FROM授课1

WHERE教师.教师号二授课1.教师号AND授课1.课号二授课.课号));

(4)Select课程.课程名,教师.教师名,Count(授课.选课人数)

From授课,教师,课程

Groupby教师号

HavingMax(选课人数)AND授课.教师号二教师.教师号AND授课.课程号二课程.

课程号;

(5)Select教师.教师名,Count(授课.课程号)*课程.学时

From授课,教师,课程

Groupby教师号

Having授课.教师号=教师.教师号AND授课.课程号=课程.课程号;

2.写出下列查询的SQL语句

现有关系数据库:学生(学号,姓名,性别,出生日期,奖学金)、课程(课程号,课程

名称,学分,开课系,开课学期)、选课(学号,课程号,成绩),内容如下表。

选课:

学号课程号成绩

930182660187

930842687968

9309026601

930562600389

930922600398

9301826045

学生:(奖学金为字符型字段)

学号姓名性别出生日期奖学金

93018欧美林女75/06/06是

93056王一平女76/08/06否

93084周元男75/09/12是

93090李为女76/01/12否

93092王大力男75/12/23是

课程

课程号课程名称学分开课系开课学期

26601数据库3计算机系第一学期

26003英语4外语系第二学期

26781大学语文4社科学院第一学期

26045高等数学4数学系第一学期

26879市场营销2财会系第二学期

写出下列查询的SQL语句。(字段名用表中所给的名称)

(1)查询所有得过奖学金的女学生的学号、姓名。

(2)查询计算机系第二学期所开课程的课程名称和学分。

(3)查询每位学生所选课程的门数和总平均成绩。

(4)查询缺成绩的学生的姓名、缺成绩的课程名称及学分数。

(5)杳询选修计算机系所开设的所有课程的学生姓名。

(6)创建一个社科学院所开设课程的视图,包含课程号、课程名、学分。

解:(1)查询所有得过奖学金的女学生的学号、姓名。

Select学号

From学生

Where性别:'女'and奖学金='是'

(2)查询计算机系第二学期所开课程的课程名称和学分。

Select课程名称,学分

From课程

Where开课系='计算机系'and开课学期:'第二学期'

(3)杳询每位学生所选课程的门数和总平均成绩。

SelectCOUNT(课程号),AVG(成绩)

From选课

GroupBy学号

(4)查询缺成绩的学生的姓名、缺成绩的课程名称及学分数。

Select姓名,课程名称.学分

From学生,课程,选课

Where学生.学号=课程.学号and课程.课程号二选课.课程号and成绩ISNULL

(5)查询选修计算机系所开设的所有课程的学生姓名。

SELECT姓名

FROM学生

WHERENOTEXISTS

(SELECT*

FROM课程

WHERE开课系='计算机系'ANDNOTEXISTS

(SELECT*

FROM选课

WHERE学号二学生.学号

AND课程号二课程.课程号))

(6)创建一个社科学院所开设课程的视图,包含课程号、课程名、学分。

CREATEVIEWIS_课程

AS

SELECT课程号,课程名,学分

FROM课程

WHERE开课系廿社科学院,;

3.设图书借阅数据库有关系图书(图书编号,书名,作者,出版社,出版时间,图书类别)、

读者(读者编号,姓名,读者类别)和借阅(读者编号,图书编号,借阅日期,还期)。其中,

读者类别为字符型,可以取值‘学生'和'教师',图书类别为字符型,取值为‘经济类'、

'管理类,、'外语类,、'计算机类’等。试用SQL语句完成下列查询。

对图书借阅数据库完成以下操作:

(1)查询借阅了作者为“张强”的图书的读者编号和图书编号。

(2)创建一个视图vl,该视图用来查询教师的借阅情况,要求包含:教师姓名、书名、

借阅日期、还期。

(3)查询所借的书名中包含“程序设计”这四个字的读者的读者编号和借阅日期。

(4)根据图书类别统计各类图书的借书数量并按数量由大到小排序。

(5)删除出版社是“电子出版社”的借书记录。

(6)查询借阅了“电子出版社”和“机械出版社”出版的图书的读者编号。

解:(1)Select读者编号,国书编号

From借阅,图书

Where借阅.图书编号:图书.图书编号AND图书.作者='张强';

(2)CREATEVIEWVI

AS

SELECT教师姓名,书名,借阅日期,还期

FROM图书,读者,借阅

WHERE借阅.图书编号:图书.图书编号AND读者.读者类别二'教师’;

(3)Select读者编号,借阅日期

From借阅,图书

Where借阅.图书编号二图书.图书编号AND图书.书名like'%程序设计%';

(4)Select图书类别,SUM(借阅.图书编号)

From借阅,图书

Groupby图书类别

Having借阅.图书编号=图书.图书编号

Orderby:

(5)DELETE

FROM借阅

WHERE,图书编号,=

(SELETE图书编号

FROM图书

WHERE图书.出板社='电子出版社';

(6)Select读者编号

From借阅,图书

Where借阅.图书编号=图书.图书编号AND图书.出版社:'电子出版社'

OR图书.出版社二'机械工业出版社';

4.阅读下列说明,回答问题1至问题5。

某工厂的信息管理数据库的部分关系模式如下所示:

职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)

部门(部门号,部门名,负贲人代码,任职时间)

关系模式的主要属性、含义及约束如表1所示,

“职工”和“部门”的关系示例分别如表2和表3所示。

表1主要属性、含义及约束

属性含义及约束

职工导「唯一标识每个职工的编号,每个弧工属于并亘仅属于一个部门

部门号唯一标识每个部门的编号,每个部门有一个负责人,巨他也是一个职工

月工资500W月工资W5000元

表2“职工”关系

职工号姓名年龄月工资部门号电话办公室

1001郑俊华26100018001234主楼201

1002王平27110018001234主楼201

2001王晓华381300280012351号楼302

2002李力24800280012361号楼S03

3001黎运军42130038001237主楼202

4001李源2480()480012452号楼102

4002李兴民361200480012462号楼103

5001赵欣250\iill•••…

表3“部门”关系

部门号部门名负责人代码任职时间

1人事处10022004-8-3

2机关20012004-8-3

3销售科

4生产科40022003-6-1

5车间

【问题1】

根据上述说明,由SQL定义的“职工”和“部门”的关系模式,以及统计各部门的人数

C、工资总数Totals、平均工资Averages的D_S视图如下所示,请在空缺处填入正确的内

容。

CreateTable部门(部门号CHAR(l)PRIMARYKEY,

部门名CHAR(16),

负责人代码CHAR(4),

任职时间DATE,

FOREIGNKEY(负贵人代码)REFERENCES职T(职S号);

CreateTable职工(职工号CHAR(4),

姓名CHAR(8),

年龄WMBER⑶,

月工资NUMBER(4),

部门号CHAR(l),

电话CHAR⑻,

办公室CHAR(8),

FOREIGNKEY(负贵人彳弋码)REFERENCES职工(职工号),

FOREIGNKEY(部门号)REFERENCES

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论