资源描述:
《SQL语言习题-参考答案无嵌入式》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、SQL练习题参考答案一、选择题1.A8.C15.B22.D2.C9.B16.D23.C3.C10.A17.A24.D4.B11.D18.C25.A5.A12.A19.C6.D13.D20.A7.C14.A21.D二、填空题1.〜10略H.1)SELECT*FROMRUNIONSELECT*FROMT2)SELECT*FROMRWHEREDWH=,l()0,3)SELECTXM,XBFROMR4)SELECTXM,DWHFROMRWHEREXB-女’5)SELECTR.BH,R.XM,R.XB,R.DWH,S.DWMFROMR,
2、SWHERER.DWH=S.DWH6)SELECTR.XM,R.XB,S.DWHFROMR,SWHERER.DWH=S.DWHANDR.XB二'男'12.1)INSERTINTORVALUES(25,”李明“,”男“,21,”95031”)2)INSERTINTOR(NO,NAME,CLASS)VALUES(30,“郑和”,“95031")3)UPDATERSETNAME=”王华”WHERENO=104)UPDATERSETCLASS二”95091“WHERECLASS二“95101“5)DELETEFROMRWHERENO=
3、2()6)DELETEFROMRWHERENAMELIKE“王%三、简答题1.答:(1)综合统一oSQL语言集数据定义语言DDL、数据杳询语言、数据操纵语言DML、数据控制语言DCL的功能于一体。(2)高度非过程化。川SQL语言进行数据操作,只要提出”做什么”,而无需指明”怎么做”,因此无需了解存取路径,存取路径的选择以及SQL语句的操作过程山系统自动完成。(3)面向集合的操作方式。SQL语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。(4)以同一种语法结构提
4、供两种使用方式。SQL语言既是自含式语言,又是嵌入式语言。作为口含式语言,它能独立地用于联机交互的使用方式;作为恢入式语言,它能够嵌入到高级语言程序中,供程序员设计程序时使用。(5)语言简捷,易学易用。2.答:SQL的数据定义为功能包括定义表、定义视图和定义索引。SQL语言使川CREATETABLE语句建立基本表,ALTERTABLE语句修改基本表定义,DROPTABLE语句删除基木表;使用CREATEINDEX语句建立索引,DROPINDEX语句删除索引;使用CREATEVIEW语句建立视图,DROPVIEW语句删除视图。1
5、.答:基本表是本身独立存在的表,在SQL中一个关系就对应一个表。视图是从一个或几个基木表导出的表。视图木身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基木表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。2.答:(1)视图能够简化用户的操作;(2)视图使用户能以多种角度看待同一数据;(3)视图对重构数据库提供了一定程度的逻辑独立性;(4)视图能够对机密数据提供安全保护。3.答:不是。视图是不实际存储数据的虚表,因此对视图的更
6、新,最终上转换为对基本表的更新。因为有些视图的更新不能惟一有意义地转换成对相应基木表的更新,所以,并不是所冇的视图都是可更新的,如《应用教程》3.5.1中的视图S_AVG(学生的学号及他的平均成绩)CREATVIEWS_AVG(学号,平均成绩)ASSELECT学号,AVG(成绩)FROMScoreGROUPBY学号;要修改平均成绩,必须修改各科成绩,而我们无法知道哪些课程成绩的变化导致了平均成绩的变化。4.答:基木表的行列了集视图一般是可更新的。若视图的属性来自集函数、表达式,则该视图肯定是不可以更新的。四、利用SQL语言,完
7、成下列对S(学生入SC(选课)、C(课程)的查询语句。(1)selectcount(distinct课程编号)fromScore(2)SELECTavg(成绩)fromScore,StudentwhereScore.学号=Student.学号and性别二'女and课程编号=,C004,(3)SELECT课程编号,avg(成绩)fromScore,StudentwhereScore.学号=Student.学号and班级编号=2006011groupby课程编号(4)SELECT课程编号,count(*)ascnumberfrom
8、Scorehavingcount(*)>0groupby课程编号orderbycnumberdesc,课程编号(5)SELECT姓名fromStudentwhere学号〉(SELECT学号fromStudentwhere姓名=,WANG,)and年龄>(SELECT年龄fro