《数据库系统概论》SQL语言复习题含答案.docx
- 文档编号:30568390
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:31
- 大小:41.64KB
《数据库系统概论》SQL语言复习题含答案.docx
《《数据库系统概论》SQL语言复习题含答案.docx》由会员分享,可在线阅读,更多相关《《数据库系统概论》SQL语言复习题含答案.docx(31页珍藏版)》请在冰豆网上搜索。
《数据库系统概论》SQL语言复习题含答案
SQL语言习题
一、单项选择题
1.SQL语言是的语言,易学习。
A.过程化B.非过程化
C.格式化D.导航式
答案:
B
2.SQL语言是语言。
A.层次数据库B.网络数据库
C.关系数据库D.非数据库
答案:
C
3.SQL语言具有的功能。
A.关系规范化、数据操纵、数据控制
B.数据定义、数据操纵、数据控制
C.数据定义、关系规范化、数据控制
D.数据定义、关系规范化、数据操纵
答案:
B
4.SQL语言的数据操纵语句包括SELECT,INSERT,UPDATE和DELETE等。
其中最重要的,也是使用最频繁的语句是。
A.SELECTB.INSERTC.UPDATED.DELETE
答案:
A
5.SQL语言具有两种使用方式,分别称为交互式SQL和。
A.提示式SQLB.多用户SQLC.嵌入式SQLD.解释式SQL
答案:
C
6.SQL语言中,实现数据检索的语句是。
A.SELECTB.INSERT
C.UPDATED.DELETE
答案:
A
7.下列SQL语句中,修改表结构的是。
A.ALTERB.CREATE
C.UPDATED.INSERT
答案:
A
第8到第11题基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下:
S(S#,SN,SEX,AGE,DEPT)
C(C#,CN)
SC(S#,C#,GRADE)
其中:
S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩。
8.检索所有比“王华”年龄大的学生姓名、年龄和性别。
正确的SELECT语句是。
A.SELECTSN,AGE,SEXFROMS
WHEREAGE>(SELECTAGEFROMS
WHERESN=’王华’)
B.SELECTSN,AGE,SEXFROMS
WHERESN=’王华’
C.SELECTSN,AGE,SEXFROMS
WHEREAGE>(SELECTAGE
WHERESN=’王华’)
D.SELECTSN,AGE,SEXFROMS
WHEREAGE>王华.AGE
答案:
A
9.检索选修课程“C2”的学生中成绩最高的学生的学号。
正确的SELECT语句是。
A.SELECTS#FORMSCWHEREC#=’C2’ANDGRAD>=
(SELECTGRADEFORMSC
WHEREC#=’C2’)
B.SELECTS#FORMSC
WHEREC#=’C2’ANDGRADEIN
(SELECTGRADEFORMSC
WHEREC#=’C2’)
C.SELECTS#FORMSC
WHEREC#=’C2’ANDGRADENOTIN
(SELECTGRADEFORMSC
WHEREC#=’C2’)
D.SELECTS#FORMSC
WHEREC#=’C2’ANDGRADE>=ALL
(SELECTGRADEFORMSC
WHEREC#=’C2’)
答案:
D
10.检索学生姓名及其所选修课程的课程号和成绩。
正确的SELECT语句是。
A.SELECTS.SN,SC.C#,SC.GRADE
FROMS
WHERES.S#=SC.S#
B.SELECTS.SN,SC.C#,SC.GRADE
FROMSC
WHERES.S#=SC.GRADE
C.SELECTS.SN,SC.C#,SC.GRADE
FROMSJIONSCONS#=SC.S#
D.SELECTS.SN,SC.C#,SC.GRADE
FROMSJOINSC
答案:
C
11.检索选修4门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。
正确的SELECT语句是()。
A.SELECTS#,SUM(GRADE)FROMSC
WHEREGRADE>=60
GROUPBYS#
ORDERBY2DESC
HAVINGCOUNT(*)>=4
B.SELECTS#,SUM(GRADE)
FROMSC
WHEREGRADE>=60
GROUPBYS#
HAVINGCOUNT(*)>=4
ORDERBY2DESC
C.SELECTS#,SUM(GRADE)
FROMSC
WHEREGRADE>=60
HAVINGCOUNT(*)>=4
GROUPBYS#
ORDERBY2DESC
D.SELECTS#,SUM(GRADE)
FROMSC
WHEREGRADE>=60
ORDERBY2DESC
GROUPBYS#
HAVINGCOUNT(*)>=4
答案:
B
12.假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。
要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系。
A.SB.SC,CC.S,SCD.S,C,SC
答案:
D
13.在数据库的如下两个表中,若雇员信息表的主关键字是雇员号,部门信息表中的主关键字是部门号。
在下列所给的操作中,哪个不能执行______。
部门信息表雇员信息表
雇员号
雇员名
部门号
工资
001
010
056
101
张山
王宏
马林
赵明
02
01
02
04
2000
1200
1000
1500
部门号
部门名
负责人
01
02
03
04
业务部
销售部
服务部
财务部
王军
李建
刘伟
陈威
A.从雇员信息表中删除行(’010’,’王宏’,’01’,1200)
B.将行(’102’,’赵明’,’01’,1500)插入雇员信息表中
C.将雇员信息表中,雇员=’010’的工资改为1600元
D.将雇员信息表中,雇员=’101’的部门号改为’05’
14.数据库的两个表同上,若雇员信息表的主关键字是雇员号,部门信息表的主关键字是部门号。
在部门信息表中,哪一行可以被删除_________。
A.部门号=’01’的行B.部门号=’02’的行
C.部门号=’03’的行D.部门号=’04’的行
15.若用如下的SQL语句创建一个student表:
CREATETABLEstudent(NOC(4)NOTNULL,
NAMEC(8)NOTNULL,
SEXC
(2),
AGEN
(2))
可以插入到student表中的是。
A.(’1031’,’曾华’,男,23)B.(’1031’,’曾华’,NULL,NULL)
C.(NULL,’曾华’,’男’,’23’)D.(’1031’,NULL,’男’,23)
答案:
B
16.与HAVING子句一起使用的子句是()。
A.GROUPBY B.ORDERBY C.WHERE D.JOIN
答案:
A
17.FOREIGNKEY约束是()约束。
A.实体完整性 B.参照完整性 C.用户自定义完整性 D.域完整性
答案:
B
18.视图创建完成后,数据字典中存放的是()。
A.查询语句 B.查询结果 C.视图的定义 D.所引用的基本表的定义
答案:
C
19.查询中需要统计元组的个数时,应使用()函数。
A.SUM(列名) B.COUNT(列名) C.COUNT(*) D.AVG(列名)
答案:
C
20.查询中需要统计某列中值的个数应使用()函数。
A.SUM(列名) B.COUNT(列名) C.COUNT(*) D.AVG(列名)
答案:
B
二、多项选择题
第1题到第4题基于这样的3个表即学生表S、课程表C和学生选课表SC,它们的结构如下:
S(S#,SN,SEX,AGE,DEPT)
C(C#,CN)
SC(S#,C#,GRADE)
其中:
S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE成绩
1.查询所有比“王华”年龄大的学生姓名、年龄和性别。
正确的SELECT语句是(AC)。
A.SELECTSN,AGE,SEXFROMS
WHEREAGE>(SELECTAGE FROMS WHERESN='王华')
B.SELECTSN,AGE,SEX FROMS
WHEREAGE>ANY
(SELECTAGE FROMS WHERESN='王华')
C.SELECTSN,AGE,SEX FROMS
WHEREAGE>ALL
(SELECTAGE FROMS WHERESN='王华')
D.SELECTSN,AGE,SEX FROMS
WHEREAGE>SOME
(SELECTAGE FROMS WHERESN='王华')
2.查询选修了课程号为“C2”的学生中成绩最高的学生的学号,正确的SELECT语句是(ABC)。
A.SELECTS# FROMSC WHEREC#='C2'ANDGRADE>=ALL
(SELECTGRADE FROMSC WHEREC#='C2')
B.SELECTS# FROMSC WHEREC#='C2'ANDGRADEIN
(SELECTMAX(GRADE) FROMSC WHEREC#='C2')
C.SELECTS# FROMSC WHEREC#='C2'ANDGRADE=
(SELECTMAX(GRADE) FROMSC WHEREC#='C2')
D.SELECTS# FROMSC WHEREC#='C2'ANDGRADE>=ANY
(SELECTGRADE FROMSC WHEREC#='C2')
3.查询至少选修了两门课程的学生的姓名,正确的SELECT语句是(ACD)。
A.SELECTS.SN FROMSJOINSCONS.S#=SC.S#
GROUPBYS.S# HAVINGCOUNT(*)>=2
B.SELECTS.SN FROMS
WHEREEXISTS
(SELECTS# FROMSC
GROUPBYS#
HAVINGCOUNT(*)>2)
C.SELECTS.SN FROMS
JOINSCS1ONS.S#=SC.S#
JOINSCS2ONS1.S#=S2.S#
WHERES1.C#!
=S2.C#
D.SELECTS.SN FROMS WHERES#IN
(SELECTS# FROMSC
GROUPBYS#
HAVINGCOUNT(*)>2)
4.查询所有没有被学生选过的课程的名称,正确的SELECT语句是(BD)。
A.SELECTC.CN FROMCJOINSCONSC.C#=C.C# WHEREC.C#ISNULL
B.SELECTC.CN FROMCLEFTJOINSCONSC.C#=C.C# WHERESC.C#ISNULL
C.SELECTC.CN FROMSCLEFTJOINCONSC.C#=C.C# WHERESC.C#ISNULL
D.SELECTC.CN FROMSCRIGHTJOINCONSC.C#=C.C# WHERESC.C#ISNULL
三、填空题
1.SQL是。
答案:
结构化查询语言
2.SQL语言的数据定义功能包括①、②、③和④。
答案:
①定义数据库②定义基本表③定义视图④定义索引
3.视图是一个虚表,它是从①中导出的表。
在数据库中,只存放视图的②,不存放视图的③。
答案:
①一个或几个基本表②定义③视图对应的数据
4.设有如下关系表R、S和T:
以R(BH,XM,XB,DWH)
S(DWH,DWM)
T(BH,XM,XB,DWH)
①实现R∪T的SQL语句是。
②实现DWH=‘100’(R)的SQL语句是。
③实现∏XM,XB(R)的SQL语句是。
④实现∏XM,DWH(XB=‘女’(R))的SQL语句是。
⑤实现RS的SQL语句是。
⑥实现∏XM,XB,DWM(XB=‘男’(RS))的SQL语句是。
答案:
①SELECT*FROMRUNIONSELECT*FROMT
②SELECT*FROMRWHEREDWH=’100’
③SELECTXM,XBFROMR
④SELECTXM,DWHFROMRWHEREXB=’女’
⑤SELECTR.BH,R.XM,R.XB,R.DWH,S.DWMFROMR
JIONSONR.DWH=S.DWH
⑥SELECTR.XM,R.XB,S.DWMFROMR
JOINSONR.DWH=S.DWH
WHERER.XB=’男’
5.设有如下关系表R:
R(No,NAME,SEX,AGE,CLASS)
主关键字是NO
其中NO为学号,NAME为姓名,SEX为性别,AGE为年龄,CLASS为班号。
写出实现下列功能的SQL语句。
①插入一个记录(25,’李明’,’男’,21,’95031’);。
②插入’95031’班学号为30、姓名为’郑和’的学生记录;。
③将学号为10的学生姓名改为’王华’;。
④将所有“95101”班号改为’95091’;。
⑤删除学号为20的学生记录;。
⑥删除姓’王’的学生记录;。
答案:
①INSERTINTORVALUES(25,’李明’,’男’,21,’95031’)
②INSERTINTOR(NO,NAME,CLASS)VALUES(30,’郑和’,’95031’)
③UPDATERSETNAME=’王华’WHERENO=10
④UPDATERSETCLASS=’95091’WHERECLASS=’95101’
⑤DELETEFROMRWHERENO=20
⑥DELETEFROMRWHERENAMELIKE’王%’
四、简述与应用题
1.试述SQL语言的特点。
答:
(l)一体化。
SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体。
(2)高度非过程化。
用SQL语言进行数据操作,只要提出“做什么”,而无需指明“怎么做”,因此无需了解存取路径,存取路径的选择以及sQL语句的操作过程由系统自动完成。
(3)面向集合的操作方式。
SQL语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。
(4)以同一种语法结构提供两种使用方式。
SQL语言既是自含式语言,又是嵌入式语言。
作为自含式语言,它能够独立地用于联机交互的使用方式;作为嵌入式语言,它能够嵌入到高级语言程序中,供程序员设计程序时使用。
(5)语言简捷,易学易用。
2.试述sQL的定义功能。
答:
SQL的数据定义功能包括定义表、定义视图和定义索引。
SQL语言使用CREATETABLE语句建立基本表,ALTERTABLE语句修改基本表定义,DROPTABLE语句删除基本表;使用CREATEINDEX语句建立索引,DROPINDEX语句删除索引;使用CREATEVIEW语句建立视图,DROPVIEW语句删除视图。
3.叙述使用SQL语言实现各种关系运算的方法。
答:
SQL语言没有提供关系的笛卡尔积、交和差运算。
其他关系运算对应的SQL语句格式是:
R∪SSELECT*FROMR
UNION
SELECT*FROMS
选择SELECT*
FROM <表>
WHERE <指定选择的条件>
投影SELECT <投影字段列表>
FROM <表>
连接SELECT <连接的字段列表>
FROM <表名1>
JION<表名2>ON <连接条件>
3.设有如下所示的三个关系,并假定这三个关系框架组成的数据模型就是用户子模式。
其中各个属性的含义如下:
A#(商店代号)、ANAME(商店名)、WQTY(店员人数)、CITY(所在城市)、B#(商品号)、BNAME(商品名称)、PRICE(价格)、QTY(商品数量)。
试用SQL语言写出下列查询,并给出执行结果:
(1)找出店员人数不超过100人或者在长沙市的所有商店的代号和商店名。
SELECTA#,ANAME
FROMA
WHEREWQTY<=100ORCITY=‘长沙’
(2)找出供应书包的商店名。
SELECTA.ANAMEFROMA
JOINABONA.A#=AB.A#
JIONBONAB.B#=B.B#
WHEREB.BNAME=‘书包’
(3)找出至少供应代号为256的商店所供应的全部商品的商店名和所在城市。
SELECTA.ANAME,A.CITYFROMA,
JOINABONA.A#=AB.A#
WHEREAB.B#IN
(SELECTAB.B#;
FROMAB
WHEREA#=“256”)
A
A#
ANAME
WQTY
CITY
101
百货商店
15
长沙
204
长安商场
89
北京
256
西单商场
500
北京
345
铁道商店
76
长沙
620
太平洋百货
412
上海
B
B#
BNAME
PRICE
1
钢笔
21
2
羽毛球
5
3
复读机
300
4
书包
76
AB
A#
B#
QTY
101
1
105
101
2
42
101
3
25
101
4
104
204
3
61
256
1
241
256
2
91
345
1
141
345
2
18
345
4
74
620
4
125
4.设有图书登记表TS,具有属性:
BNO(图书编号),BC(图书类别),BNA(书名),AU(著者),PUB(出版社)。
按下列要求用SQL语言进行设计:
(1)按图书馆编号BNO建立TS表的索引ITS。
(2)查询,按出版社统计其出版图书总数。
(3)删除索引ITS。
解:
(1)CREATEINDEXITSONTS(BNO)
(2)SELECTPUB,COUNT(BNO)
FROMTS
GROUPBYPUB
(3)DROPINDEXITS
5.己知三个关系R(A,B,C)、S(A,D,E)和T(D,F),其中,名称相同的属性为关联属性,C、E为数值型属性。
试用SQL语句实现如下操作:
(1)将R、S和T三个关系按关联属性建立一个视图R-S-T;
(2)对视图R-S-T按属性A分组后,求属性C和E的平均值。
解:
(1)CREATEVIEWR_S_T
AS
SELECTR.A,B,C,S.D,E,F
FROMR
JOINSONR.A=S.A
JOINTS.D=T.D
(2)SELECTAVG(C),AVG(E)
FROMR_S_T
GROUPBYA
6.设有关系R(A,B)和S(A,C),A为相同属性。
试用SQL语句实现:
(1)查询属性C>50时,R中相关联的属性B之值。
(2)当属性C=40时,将R中与之相关连的属性B值修改为b4。
解:
(1)SELECTB
FROMRJOINSONR.A=S.A
WHEREC>50
(2)UPDATER
SETB=‘b4’
WHEREAIN
(SELECTA
FROMS
WHEREC=40)
7.已知R(A,B,C)和S(C,D,E)两个关系,如下图所示。
执行如下SQL语句:
(1)CREATEVIEWH(A,BC,C,D,E)
AS
SELECTA,B,R.C,D,E
FROMRJOINSONR.C=S.C;
(2)SELECTB,D,E
FROMH
WHEREC=‘C2’
试给出:
(1)视图H;
(2)对视图H的查询结果。
解:
本题的结果如图所示。
8.已知关系R如图所示。
试用SQL语句实现下列操作:
(1)按属性A分组,求出每组中在属性C上的最大值和最小值,且将它们置于视图RVE中。
(2)在视图RVE中查询属性A=‘98’的记录。
解:
(1)CREATEVIEWRVE(A,CMAX,CMIN)
ASSELECTA,MAX(C),MIN(C)
FROMR
GROUPBYA;
(2)SELECT*
FROMRVE
WHEREA=‘98’
9.已知学生表S和学生选课表SC。
其关系模式如下:
S(SNo,SN,SD,PROV)
SC(SNO,CN,GR)
其中,SNO为学号,SN为姓名,SD为系名,PROV为省区,CN为课程名,GR为分数。
试用SQL语言实现下列操作:
(1)查询“信息系”的学生来自哪些省区。
(2)按分数降序排序,输出“英语系”学生选修了“计算机”课程的学生的姓名和分数。
解:
(1)SELECTDISTINCTPROV
FROMS
WHERESD=’信息系’
(2)SELECTSN,GR
FROMSJOINSCONS.SNO=SC.SNO
WHERESD=’英语系’ANDCN=’计算机’
ORDERBYGRDESC
10.设有学生表S(SNO,SN)(SNO为学号,SN为姓名)和学生选课表SC(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库系统概论 数据库 系统 概论 SQL 语言 复习题 答案