关系数据库标准语言SQL练习题Word文件下载.docx
《关系数据库标准语言SQL练习题Word文件下载.docx》由会员分享,可在线阅读,更多相关《关系数据库标准语言SQL练习题Word文件下载.docx(24页珍藏版)》请在冰点文库上搜索。
B.SELECTS#FORMSC
WHEREC#=“C2〞ANDGRADEIN〔SELECTGRADEFORMSCWHEREC#=“C2〞〕
C.SELECTS#FORMSC
WHEREC#=“C2〞ANDGRADENOTIN〔SELECTGRADEFORMSCWHERE
C#=“C2〞〕
D.SELECTS#FORMSC
=ALL〔SELECTGRADEFORMSCWHERE
10.检索学生及其所选修课程号和成绩。
正确的SELECT语句是▁▁▁C▁▁。
SELECTS.SN,SC.C#,SC.GRADE
FROMSWHERES.S#=SC.S#
B.SELECTS.SN,SC.C#,SC.GRADE
FROMSWHERES.S#=SC.GRADE
C.SELECTS.SN,SC.C#,SC.GRADE
FROMS,SCWHERES.S#=SC.S#
D.SELECTS.SN,SC.C#,SC.GRADE
FROMS.SC
11.检索选修四门以上课程的学生总成绩〔不统计不及格的课程〕,并要求按总成绩的降序排列出来。
正确的SELECT语句是▁B▁。
A.SELECTS#,SUM〔GRADE〕
FROMSCWHEREGRADE>
=60GROUPBYS#ORDERBY2DESC
HAVINGCOUNT(*)>
=4
SELECTS#,SUM〔GRADE〕
=60GROUPBYS#HAVINGCOUNT〔*〕>
ORDERBY2DESC
=60HAVINGCOUNT〔*〕>
=4GROUPBYS#
=60ORDERBY2DESCGROUPBYS#
HAVINGCOUNT〔*〕>
12.假定学生关系是S〔S#,SNAME,SEX,AGE〕,课程关系是C〔C#,CNAME,TEACHER〕,学生选修课关系是SC〔S#,C#,GRADE〕。
要查找选修“COMPUTER〞课程的“女〞学生,将涉及到关系▁▁D▁▁。
A.SB.SC,CC.S,SCD.S,C,SC
13.如下面的数据库的表中,假设职工表的主关键字是职工号,部门表的主关键字是部门号,SQL操作▁▁▁▁▁不能执行。
职工表部门表
A.从职工表中删除行〔‘025’,‘王芳’,‘03’,720〕
B.将行〔‘005’,‘乔兴’,‘04’,750〕插入到职工表中
C.将职工号为‘001’工资改为700
D.将职工号为‘038’部门号改为‘03’
14.假设用如下的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)
二、填空题
1.SQL是▁▁▁▁▁▁▁▁▁▁。
结构化查询语言
2.SQL语言的数据定义功能包括▁▁▁▁▁▁▁、▁▁▁▁▁▁▁、▁▁▁▁▁▁▁和▁▁▁▁▁▁▁。
定义数据库定义根本表定义视图定义索引
3.视图是一个虚表,它是从▁▁▁中导出的表。
在数据库中,只存放视图的▁▁▁▁▁,不存视图的▁▁▁▁▁▁▁▁▁▁。
一个或几个根本表定义视图对应的数据
4.设有如下关系表R、S和T:
R〔BH,XM,XB,DWH〕
S〔DWH,DW〕
T〔BH,XM,XB,DWH〕
实现R∪T的语句是▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁。
SELECT*FROMRUNIONSELECT*FROMT
SELECT*FROMRWHEREDWH=‘100’
SELECTXM,XBFROMR
SELECTX,DWHFROMRWHEREXB=“女〞
SELECTR.BH,R.XM,R.XB,R.DWH,S.DWH,S.DWM
FROMR,SWHERER.DWH=S.DWH
SELECTR.XM,R.XB,S.DWM
FROMR,SWHERER.DWH=S.DWHANDR.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“王%〞
习题3
1.表达SQL语言支持的三级逻辑结构。
答:
SQL语言支持的三级逻辑结构如图1所示.
在概念层,对应概念模式的概念记录型的根本表。
根本表是这样的一种表,它本身实际存在,在VisualFoxpro中每个表在存储中可用一具存储文件来表示〔在ORACLE中,多个表存储在一个文件夹中。
一个根本表就是一个关系,它不是由其人表导出的表。
根本表是使用CDEATETABLE语句建立的。
在外层,用户所看到的可以是根本表,也可以是视图。
视图是一个虚拟表,它是由一个或几个根本表导出的表,它不直接存在于物理存储器上的表。
视图是使用CDEATEVIEW语句建立的。
在层,根本表〔或库〕用一个存储文件来表示,即用一组类型一样的存储记录值来表示。
DBA可以对物理存储文件进展操作。
2.表达使用SQL语言实现各种关系运算的方法。
由VisualFoxpro支持的SQL语言没有提供关系的笛卡尔积、交和差运算。
其全关系运算对应的SQL语句格式是:
R∪S:
SELECT语句〔生成R〕
UNION
SELECT语句〔生成S〕
选择:
SELECT*FROM<
表>
WHERE<
指定选择的条件>
投影:
SELECT<
投影字段列表>
FROM<
连接的字段列表>
FROM<
连接的两个表名>
WHERE<
连接条件>
3.设有如下图的三个关系,并假定这三个关系框架组成的数据模型就是用户子模式。
其中各个属性的含义如下:
A#〔商店代号〕、ANAME〔商店名〕、WQTY(店员人数)、CITY〔所在城市〕、B#〔商品号〕、BNAME〔商品名称〕、PRICE〔价格〕、QTY〔商品数量〕。
试用SQL语言写出以下查询,并给出执行结果。
AAB
A#
ANAME
WQTY
CITY
101
韶山商店
15
204
前门百货商店
89
256
东风商场
501
345
铁道商店
76
620
第一百货商店
413
B#
QTY
1
105
2
42
3
25
4
104
61
241
91
141
18
74
125
BNAME
PRICE
毛笔
21
羽毛球
784
收音机
1325
书包
242
⑴找出店员人数不超过100人或者在市的所有商店的代号和商店名。
SELECTA#,ANAME
FROMAWHEREWQTY<
=100ORCITY=“〞;
⑵找出供给书包的商店名。
SELECTA.ANAMEFROMA,B,AB
WHEREA.A#=AB.A#ANDB.B#=AB.B#ANDB.BNAME=“书包〞;
⑶找出至少供给了代号为“256〞的商店所供给的全部商品的商店名和所在城市。
SELECTANAME,CITYFROMAWHERENOTEXSIST
〔SELECT*FORMABFWHEREA#=“256〞ANDNOTEXSIST
〔SELECT*FROMABSWHEREA#=A.A#ANDB#=F.B#〕〕;
4.设有图书登记表TS,具有属性:
BNO〔图书编号〕,BC〔图书类别〕,BNA〔书名〕,AU〔著者〕,PUB〔〕。
按以下要求用SQL语言进展设计。
查询按统计其出幅员书总数。
SELECTPUB,COUNT〔BNO〕
FROMTSGROUPBYPUB
5.三个关系R、S和T如下图。
试用SQL语句实现如下操作:
RST
A
C
a1
b1
20
b2
22
a2
b3
D
E
d1
d2
24
F
f2
d3
f3
⑴将R、S和T三个关系按关联属性建立一个视图R-S-T。
⑵对视图R-S-T按属性A分组后,求属性C和E的平均值。
解:
⑴CREATEVIEWR-S-T
ASSELECTR.A,B,C,S.D,E,F
FROMR,S,TWHERER.A=S.AANDS.D=T.D;
⑵SELECTAVG〔C〕,AVG〔E〕FROMR-S-TGROUPBYA;
6.有关系R和S如下图。
RS
B2
a3
40
50
55
试用SQL语句实现:
⑴查询属性C>
50时,R中与相关联的属性B之值。
⑵当属性C=40时,将R中与之相关连的属性B值修改为b4。
⑴SELECTBFROMR,SWHERER.A=S.AANDC>
50;
⑵UPDATER
SETB=“b4〞WHEREAIN〔SELECTA
FROMSWHEREC=40〕
7.R和S两个关系如下图。
c1
c2
e1
e2
c3
e3
执行如下SQL语句:
⑴CREATEVIEWH〔A,B,C,D,E〕
ASSELECTA,B,R.C,D,EFROMR,SWHERER.C=S.C;
⑵SELECTB,D,EFROMHWHEREC=“C2〞
试给出:
⑴视图H。
⑵对视图H的查询结果。
此题的结果如下图。
视图H对视图H的查询结果
8.关系R如下图。
R
97
84
a297
92
a397
98
72
95
99
88
94
试用SQL语句实现以下操作:
⑴按属性A分组,求出每组中在属性C上的最大值和最小值,且将它们置于视图RAE中。
⑵在视图RAE中查询属性A=“8〞记录。
解
⑴CREATEVIEWRAE〔A,CMAX,CMIN〕
ASSELECTA,MAX〔C〕,MIN〔C〕FROMRGROUPBYA;
⑵SELECT*FROMRAEWHEREA=“98〞
9.学生表S和学生选课表SC。
其关系模式如下:
S〔SNO,SN,SD,PROV〕
SC〔SNO,CN,GR〕
SNO为学号,SN为,SD为系名,PROV为省区,CN为课程名,GR为分数。
试用SQL语言实现以下操作:
⑴查询“信息系〞的学生来自哪些省区。
⑵按分数降序排序,输出“英语系〞学生选修了“计算机〞课程的学生的和分数。
⑴SELECTDISTINCTPROVFROMSWHERESD=“信息系〞
⑵SELECTSN,GRFROMS,SC
WHERESD=“英语系〞ANDCN=“计算机〞ANDS.SNO=SC.SNO
ORDWRBYGRDESC;
10.设有学生表S〔SNO,SN〕〔SNO为学生号,SN为〕和学生选修课程表SC〔SNO,CNO,CN,G〕〔CNO为课程号,CN为课程名,G为成绩〕,试用SQL语言完成以下各题:
⑴建立一个视图V-SSC〔SNO,SN,CNO,CN,G〕,并按CNO升序排序。
⑵从视图V-SSC上查询平均成绩在90分以上的SN、CN和G。
⑴CREATEVIEWV-SSC〔SNO,SN,CNO,CN,G〕
ASSELECTS.SNO,S.SN,CNO,SC.CN,SC.G
FROMS,SCWHERES.SNO=SC.SNOORDWRBYCNO
⑵SELECTSN,CN,G
FROMV-SSCGROGPBYSNOHAVINGAVG〔G〕>
90
11.设有关系模式:
SB〔SN,SNAME,CITY〕
SB表示供给商,SN为供给商代号,SNAME为供给商名字,CITY为供给商所在城市,主关键字为SN。
PB〔PN,PNAME,COLOR,WEIGHT〕
P表示零件,PN为零件代号,PNAME为零件名字,COLOR为零件颜色,WEIGHT为零件重量,主关键字为PN。
〔JN,JNAME,CITY〕
表示工程,JN为工程编号,JNAME为工程名字,CITY为工程式所在城市,主关键字为JN。
SP〔SN,PN,JN,QTY〕
SPJ表示供给关系,SN是为指定工程提供零件的供给商代号,PN为所提供的零件代号,JN为工程编号,QTY表示提供的零件数量,主关键字为SN,PN,JN,外关键字为SN,PN,JN。
如下图表示供给商〔S〕—零件〔P〕—工程〔J〕数据库表,写出实现以下各题功能的SQL语句:
〔1〕取出所有工程的全部细节:
SELECT*FROMTOSCREEN;
JNJNAMECITY
--------------------------------------
J1JN1
J2JN2
J3JN3
J4JN4
J5JN5
J6JN6
J7JN7
〔2〕取出所在城市为的所有工程的全部细节;
SELECT*FROMWHERECETY=“〞TOSCREEN;
JNJNAMECITY
J1JN1
J5JN5
J7JN7
〔3〕取出重量最轻的零件代号;
SELECTPNFROMPB
WHERHWEIGHT=
〔SELECTMIN〔WEIGHT〕FROMPB〕TOSCREEN;
PN
――――
P5
〔4〕取出为工程式J1提供零件的供给商代号;
SELECTSNFROMSPWHEREJN=“J1〞TOSCREEN;
SN
S1
S2
S3
〔5〕取出为工程J1提供P1的供给商代号;
SELECTSNFROMSP
WHEREJN=“J1〞ANDPN=“P1〞TOSCREEN;
――
〔6〕取出由供给商S1提供零件的工程名称;
SELECT.JNAMEFROM,SP
WHERE.JN=SP.JNANDSP.SN=“S1〞TOSCREEN;
JNAME
――――――
JN1
JN4
〔7〕取出供给商S1提供的零件的颜色;
SELECTDISTINCTPB.COLORFROMPB,SP
WHEREPB.PN=SP.PNANDSP.SN=“1〞TOSCREEN;
COLOR
―――
红
〔8〕取出为工程J1或J2提供零件的供给商代号;
SELECTDISTINCTSNFROMSP
WHEREJN=“J1〞ORJN=“J2〞TOSCREEN;
S5
〔9〕取出为工程J1提供红色零件的供给商代号;
SELECTDISTINCTSP.SNFROMSP,PB
WHEREPB.PN=SP.PNANDSP.JN=“J1〞ANDPB.COLOR=“红〞TOSCREEN;
――-
〔10〕取出为所在城市为的工程提供零件的供给商代号;
SELECTDISTINCTSP.SNFROMSP,
WHERESP.JN=.JNAND.CITY=“〞TOSCREEN;
S4
〔11〕取出为所在城市为或的工程提供红色零件的供给商代号;
SELECTSP.SNFROMPB,,SP
WHERESP.PN=PB.PNAND.JN=SP.JNANDPB.COLOR=‘红’AND
〔.CITY=“〞OR.CITY=“〞TOSCREEN;
〔12〕取出供给商与工程所在城市一样的供给商提供的零件代号;
SELECTDISTINCTSP.PNFROMSB,,SP
WHERESB.SN=SP.SNAND.JN=SP.JNANDSB.CITY=.CITYTO
SCREEN;
PN
P1
P2
P3
P4
P5
P6
―――――
〔13〕取出的供给商提供给的任一工程的零件的代号;
SELECTSP.PNFROMSB,,SP
WHERESB.SN=SP.SNAND.JN=SP.JNANDSB.CITY=“〞AND
.CITY=“〞TOSCREEN;
PN
〔14〕取出至少由一个和工程式不在同一城市的供给商提供零件的工程代号;
SELECTDISTINCTSP.JNFROMSB,,SP
WHERESB.SN=SP.SNAND.JN=SP.JNANDSB.CITY<
>
.CITYTOSCREEN;
JN
J1
J2
J3
J4
J5
J6
J7
〔15〕取出供给商不提供任何零件的工程的代号
SELECTDISTINCTJNFROMSP
WHEREJNNOTIN
〔SELECTDISTINCTSP.JNFROMSB,SP
WHERESB.