第3章作业答案.docx
- 文档编号:6873462
- 上传时间:2023-01-11
- 格式:DOCX
- 页数:11
- 大小:20.44KB
第3章作业答案.docx
《第3章作业答案.docx》由会员分享,可在线阅读,更多相关《第3章作业答案.docx(11页珍藏版)》请在冰豆网上搜索。
第3章作业答案
;
第三章SQL
一、选择题
(1)SQL语言是(B)的语言,易学习。
A.过程化B.非过程化C.格式化D.导航式
(2)SQL语言具有(B)的功能。
A.关系规范化、数据操纵、数据控制
B.数据定义、数据操纵、数据控制
C.数据定义、关系规范化、数据控制
%
D.数据定义、关系规范化、数据操纵
(3)SQL语言的数据操作语句包括SELECT、INSERT、UPDATE和DELETE等。
其中最重要的,也是使用最频繁的语句是(A)。
A.SELECTB.INSERTC.UPDATED.DELETE
(4)设有关系R(A,B,C)和S(C,D),与关系代数表达式πA,B,D(σ=(R×S))等价的SQL语句是(B)。
A.SELECT*FROMR,SWHERE=
B.SELECTA,B,DFROMR,SWHERE=
C.SELECTA,B,DFROMR,SWHERER=S
D.SELECTA,BFROMRWHERE(SELECTDFROMSWHERE=.
【
(5)设关系R(A,B,C),与SQL语句“SELECTDISTINCTAFROMRWHEREB=17”等价的关系代数表达式是(A)。
A.πA(σB=17(R))B.σB=17(πA(R))
C.σB=17(πA,C(R))D.πA,C(σB=17(R))
下面第(6)~(10)题,基于“学生-选课-课程”数据库中的3个关系:
S(S#,SNAME,SEX,DEPARTMENT),主码是S#
C(C#,CNAME,TEACHER),主码是C#
SC(S#,C#,GRADE),主码是(S#,C#)
(6)在下列关于保持数据库完整性的叙述中,哪一个是不正确的(D)
<
A.向关系SC插入元组时,S#和C#都不能是空值(NULL)
B.可以任意删除关系SC中的元组
C.向任何一个关系插入元组时,必须保证该关系主码值的唯一性
D.可以任意删除关系C中的元组
(7)查找每个学生的学号、姓名、选修的课程名和成绩,将使用关系(D)
A.只有S,SCB.只有SC,CC.只有S,CD.S,SC,C
(8)若要查找姓名中第一个字为“王”的学生的学号和姓名,则下面列出的SQL语句中,哪个(些)是正确的(B)
Ⅰ.SELECTS#,SNAMEFROMSWHERESNAME='王%'
。
Ⅱ.SELECTS#,SNAMEFROMSWHERESNAMELIKE'王%'
Ⅲ.SELECTS#,SNAMEFROMSWHERESNAMELIKE'王_'
A.ⅠB.ⅡC.ⅢD.全部
(9)若要“查询选修了3门以上课程的学生的学号”,则正确的SQL语句是(B)。
A.SELECTS#FROMSCGROUPBYS#WHERECOUNT(*)>3
B.SELECTS#FROMSCGROUPBYS#HAVINGCOUNT(*)>3
C.SELECTS#FROMSCORDERBYS#WHERECOUNT(*)>3
D.SELECTS#FROMSCORDERBYS#HAVINGCOUNT(*)>3
;
(10)若要查找“由张劲老师执教的数据库课程的平均成绩、最高成绩和最低成绩”,则将使用关系(B)。
A.S和SCB.SC和CC.S和CD.S、SC和C
下面第(11)~(14)题基于这样的3个表,即学生表S、课程表C和学生选课表SC,它们的关系模式如下:
S(S#,SN,SEX,AGE,DEPT)(学号,姓名,性别,年龄,系别)
C(C#,CN)(课程号,课程名称)
SC(S#,C#,GRADE)(学号,课程号,成绩)
(11)检索所有比“王华”年龄大的学生姓名、年龄和性别。
下面正确的SELECT语句是(A)。
A.SELECTSN,AGE,SEXFROMSWHEREAGE>(SELECTAGEFROMSWHERESN='王华')
,
B.SELECTSN,AGE,SEXFROMSWHERESN='王华'
C.SELECTSN,AGE,SEXFROMSWHEREAGE>(SELECTAGEWHERESN='王华')
D.SELECTSN,AGE,SEXFROMSWHERESGE>王华.AGE
(12)检索选修课程“C2”的学生中成绩最高的学生的学号。
正确的SELECT语句是(A)。
A.SELECTS#FROMSCWHEREC#='C2'ANDGRADE>=ALL
(SELECTGRADEFROMSCWHEREC#='C2')
B.SELECTS#FROMSCWHEREC#='C2'ANDGRADEIN
(SELECTGRADEFROMSCWHEREC#='C2')
【
C.SELECTS#FROMSCWHEREC#='C2'ANDGRADENOTIN
(SELECTGRADEGORMSCWHEREC#='C2')
D.SELECTS#FROMSCWHEREC#='C2'ANDGRADE>=
(SELECTGRADEFROMSCWHEREC#='C2')
(13)检索学生姓名及其所选修课程的课程号和成绩。
正确的SELECT语句是(C)。
A.SELECT,#,FROMSWHERE#=#
B.SELECT,#,FROMSCWHERE#=
C.SELECT,#,FROMS,SCWHERE#=#
!
D.SELECT,#,FROMS,SC
(14)检索4门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。
正确的SELECT语句是(B)。
A.SELECTS#,SUM(GRAGE)FROMSCWHEREGRADE>=60GROUPBYS#
ORDERBYS#HAVINGCOUNT(*)>=4
B.SELECTS#,SUM(GRADE)FROMSCWHEREGRADE>=60GROUPBYS#HAVINGCOUNT(*)>=4ORDERBY2DESC
C.SELECTS#,SUM(GRADE)FROMSCWHEREGRADE>=60HAVINGCOUNT(*)<=4GROUPBYS#ORDERBY2DESC
D.SELECTS#,SUM(GRADE)FROMSCWHEREGRADE>=60HAVINGCOUNT(*)>=4GROUPBYS#ORDERBY2
(15)如下面的数据库的表所示,若职工表的主关键字是职工号,部门表的主关键字是部门号,SQL操作(B)不能执行。
【
A.从职工表中删除行('025','王芳','03',720)
B.将行('005','乔兴','04',720)插入到职工表中
C.将职工号为'001'的工资改为700
D.将职工号为'038'的部门号改为'03'
职工号
职工名
部门号
工资
-
部门号
部门名
主任
001
李红
01
580
?
01
人事处
高平
005
刘军
01
670
\
02
财务处
蒋华
025
王芳
03
720
,
03
教务处
许红
038
张强
02
650
`
04
学生处
杜琼
(16)有关系S(S#,SNAME,SAGE),C(C#,CNAME),SC(S#,C#,GRADE)。
要查询选修“ACCESS”课的年龄不小于20的全体学生姓名的SQL语句是“SELECTSNAMEFROMS,C,SCWHERE子句”。
这里的WHERE子句的内容是(A)。
A.#=#AND#=#ANDSAGE>=20ANDCNAME='ACCESS'
B.#=#AND#=#ANDSAGEIN>=20ANDCNAMEIN'ACCESS'
C.SAGE>=20ANDCNAME='ACCESS'
—
D.SAGE>=20ANDCNAME='ACCESS'
(17)设关系数据库中有一个表S的关系模式为S(SN,CN,GRADE),其中SN为学生名,CN为课程名,二者为字符型;GRADE为成绩,数值型,取值范围0~100。
若要更正“王二”的化学成绩为85分,则可用(A)。
A.UPDATESSETGRADE=85WHERESN='王二'ANDCN='化学'
B.UPDATESSETGRADE='85'WHERESN='王二'ANDCN='化学'
C.UPDATEGRADE=85WHERESN='王二'ANDCN='化学'
D.UPDATEGRADE='85'WHERESN='王二'ANDCN='化学'
(18)在SQL语言中,子查询是(D)。
A.返回单表中数据子集的查询语句
"
B.选取多表中字段子集的查询语句
C.选取单表中字段子集的查询语句
D.嵌入到另一个查询语句之中的查询语句
(19)在SQL语言中,条件“年龄BETWEEN20AND30”表示年龄在20~30之间,且(A)。
A.包括20岁和30岁B.不包括20岁和30岁
C.包括20岁但不包括30岁D.包括30岁但不包括20岁
(20)已知学生选课信息表:
sc(sno,cno,grade)。
查询“至少选修了一门课程,但没有学习成绩的学生学号和课程号”的SQL语句是(C)。
A.SELECTsno,cnoFROMscWHEREgrade=NULL
|
B.SELECTsno,cnoFROMscWHEREgradeIS''
C.SELECTsno,cnoFROMscWHEREgradeISNULL
D.SELECTsno,cnoFROMscWHEREgrade=''
(21)有如下的SQL语句:
Ⅰ.SELECTsnameFROMs,scWHEREgrade<60
Ⅱ.SELECTsnameFROMsWHEREsnoIN(SELECTsnoFROMscWHEREgrade<60)
Ⅲ.SELECTsnameFROMs,scWHERE=ANDgrade<60
若要查找分数(grade)不及格的学生姓名(sname),则以上正确的有哪些(C)
:
A.Ⅰ和ⅡB.Ⅰ和ⅢC.Ⅱ和ⅢD.Ⅰ、Ⅱ和Ⅲ
二、综合练习题
1、现有如下关系:
学生(学号,姓名,性别,专业,出生日期)
教师(教师编号,姓名,所在部门,职称)
授课(教师编号,学号,课程编号,课程名称,教材,学分,成绩)
用SQL语言完成下列功能。
(1)删除学生表中学号为“20013016”的记录。
·
(2)将编号为“003”的教师所在的部门改为“电信系”。
(3)创建“英语”专业成绩有过不及格的学生的视图(不要求掌握)。
(4)向学生表中增加一个“奖学金”列,其数据类型为数值型(不要求掌握)。
参考答案(答案不唯一):
(1)删除学生表中学号为“20013016”的记录。
Deletefrom授课where学号=‘’
Deletefrom学生where学号=‘’
{
(2)将编号为“003”的教师所在的部门改为“电信系”。
Update教师set所在部门=‘电信系’where教师编号=‘003’
2、现有如下关系:
学生S(S#,SNMAE,AGE,SEX)
学习SC(S#,C#,GRADE)
课程C(C#,CNAME,TEACHER)
\
用SQL语言完成下列功能。
(1)统计有学生选修的课程门数。
(2)求选修C4课程的学生的平均年龄。
(3)求“李文”老师所授课程的每门课程的学生平均成绩。
(4)检索姓名以“王”字打头的所有学生的姓名和年龄。
(5)在基本表S中检索每一门课程成绩都大于等于80分的学生学号、姓名和性别,并把检索到的值送往另一个已存在的基本表STUDENT(S#,SNAME,SEX)中。
(6)向基本表S中插入一个学生元组('S9','WU',18,'F')。
(7)把低于总平均成绩的女同学的成绩提高10%。
¥
(8)把“王林”同学的学习选课和成绩全部删除。
参考答案(答案不唯一):
(1)统计有学生选修的课程门数。
selectcount(distinctC#)fromSC
(2)求选修C4课程的学生的平均年龄。
selectAvg(age)fromS
WhereS#in(selectS#fromSCwhereC#=’C4’)
(3)求“李文”老师所授课程的每门课程的学生平均成绩。
*
selectAvg(grade)fromC,SC
Where#=#andteacher=‘李文’
Groupby#
(4)检索姓名以“王”字打头的所有学生的姓名和年龄。
selectsname,agefromS
Wheresnamelike‘王%’
(5)在基本表S中检索每一门课程成绩都大于等于80分的学生学号、姓名和性别,并把检索到的值送往另一个已存在的基本表STUDENT(S#,SNAME,SEX)中。
insertintoSTUDENT(S#,SNAME,SEX)
&
SelectS#,SNAME,SEXfromS
Wherenotexists(select*fromSCwheregrade<80and#=#)
(6)向基本表S中插入一个学生元组('S9','WU',18,'F')。
insertintoSvalues('S9','WU',18,'F')
(7)把低于总平均成绩的女同学的成绩提高10%。
UpdateSCsetgrade=grade*110%
Where grade< (selectAvg(grade)from SC)
AndS#in(selectS#fromSwheresex=‘F’)
/
(8)把“王林”同学的学习选课和成绩全部删除。
DeletefromSC
Wheres#in(selects#fromSwhereSNAME=‘王林’)
3、根据书上第二章习题中的SPJ数据库,包括S、P、J、SPJ4个关系模式,用SQL完成如下操作。
(1)找出所有供应商的姓名和所在城市.
(2)找出所有零件的名称,颜色,重量
(3)找出使用供应商S1所供应零件的工程号码.
(4)找出工程项目J2使用的各种零件的名称及其数量.
$
(5)找出上海厂商供应的所有零件号码.
(6)出使用上海产的零件的工程名称.
(7)找出没有使用天津产的零件的工程号码.
(8)把全部红色零件的颜色改成蓝色.
(9)由S5供给J4的零件P6改为由S3供应.
(10)从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录.
(11)请将(S2,J6,P4,200)插入供应情况关系.
\
(1)找出所有供应商的姓名和所在城市.
SELECTSNAME,CITYFROMS
(2)找出所有零件的名称,颜色,重量
SELECTPNAME,COLOR,WEIGHT
FROMP
(3)找出使用供应商S1所供应零件的工程号码.
SELECTJNO
@
FROMSPJ
WHERESNO=‘S1’
(4)找出工程项目J2使用的各种零件的名称及其数量.
SELECT,
FROMP,SPJ
WHERE=AND='J2'
(5)找出上海厂商供应的所有零件号码.
SELECTDISTINCTPNO
)
FROMSPJ
WHERESNOIN(SELECTSNO
FROMS
WHERECITY='上海')
(6)出使用上海产的零件的工程名称.
SELECTJNAME
FROMJ,SPJ,S
WHEREJ.JNO=SPJ.JNOANDSPJ.SNO= AND='上海';
*
或
SELECTJNAME
FROMJ
WHEREJNOIN(SELECTJNO
FROMSPJ,S
WHERESPJ.SNO=
AND='上海')
(7)找出没有使用天津产的零件的工程号码.
:
SELECTJNO
FROMJ
WHERENOTEXISTS(SELECT*
FROMSPJ
WHERE=ANDSNOIN
(SELECTSNO
FROMS
WHERECITY=‘天津’))
或
SELECTJNO
FROMJ
WHERENOTEXISTS(SELECT*
FROMSPJ,S
WHERE=
AND=
AND=‘天津’);
(8)把全部红色零件的颜色改成蓝色.
UPDATEP
SETCOLOR='蓝'
WHERECOLOR='红'
(9)由S5供给J4的零件P6改为由S3供应.
UPDATESPJ
SETSNO='S3'
WHERESNO='S5'ANDJNO='J4'ANDPNO='P6'
(10)从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录.
DELETEFROMSPJWHERESNO='S2';
DELETEFROMS WHERESNO='S2';
解析:
注意删除顺序,应该先从SPJ表中删除供应商S2所供应零件的记录,然后从从S表中删除S2。
(11)请将(S2,J6,P4,200)插入供应情况关系.
INSERTINTOSPJ(SNO,JNO,PNO,QTY)
VALUES(‘S2’,’J6’,’P4’,200);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 作业 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)