单选题 (36)至(37)题题基于“学生—选课—课程”数据库中的三个关系:
“学生-选课-课程”数据库中的三个关系是:
S(S#,SNAME,SEX,AGE),SC(S#,C#,GRADE),C(C#,CNAME,TEACHER)

单选题 若要求查找“由张劲老师执教的数据库课程的平均成绩、最高成绩和最低成绩”,将使用关系
【正确答案】 B
【答案解析】[解析] 要查找“由张劲老师执教的数据库课程的平均成绩、最高成绩和最低成绩”,要用到的属性老师在关系SC和C中,课程名在关系c中,成绩在关系SC中,因此将使用关系 SC和C。本题的答案为B。
单选题 若要求查找“李”姓学生的学生号和姓名,正确的。SQL语句是
【正确答案】 B
【答案解析】[解析] 要查找“李”姓学生的学生号和姓名,要使用学生关系S并利用LIKE查询。
LIKE谓词的一般形式为:列名 LIKE 字符串常数
字符串常数可包含字符“”(下划线)、字符“%”和其他字符。“%”表示可以和任意长度的字符串匹配。
因此本题的答案为B。
单选题 为了提高查询学生成绩的查询速度,对关系SC创建唯一索引,应该创建在哪一个(组)属性上?
【正确答案】 D
【答案解析】[解析] 关系SC中:S#为学号,C#为课程号,GRADE为成绩。一个学号对应一个学生,一个课程号对应一门课程,一个学生可以选择多门课程,一门课程可以被多个学生选择,如果在属性S#上建立索引或是在属性C#上独立建立索引,都不能提高查询的速度。一个学号和一个课程号可以唯一确定一个成绩,因此在S#和C#建立索引可以提高查询的速度。因此本题的答案为D。
单选题 设S AVG(SNO,AVG GRADE)是一个基于关系SC定义的学生号和他的平均成绩的视图。下面对该视图的操作语句中,哪一个(些)是不能正确执行的?
Ⅰ.UPDATE S AVG SET AVG GRADE=90 WHERE SNO='2004010601';
Ⅱ.SELECT SNO,AVG GRADE FROM S AVG WHERE SNO='2004010601';
【正确答案】 A
【答案解析】[解析] 视图是从一个表或多个表或其他视图上导出的表。要创建自定义并且可更新的数据集合,可以使用视图。视图兼有表和查询的特点:与查询相类似的是,视图可以用来从一个或多个相关联的表或视图中提取有用信息;与表相类似的是,视图可以用来更新其中的信息,并将更新结果永久保存在磁盘上。我们可以用视图使数据暂时从数据库中分离成为游离数据,以便在主系统之外收集和修改数据。但是,视图可以生成在表中没有的新字段(如S_AVG中的AVG_GRADE),该字段不属于任何一个源表,只能显示,而不能进行更新。
语句1:UPDATE S_AVG SET AVG_GRADE=90 WHERE SNO='2004010601'
表示将视图S AVG中SNO为“2004010601”记录的AVG GRADE字段更新为90,这是一个无效操作,因为AVG GRADE字段是一个新字段,不属于源表,该字段内容是卤源表数据计算生成的,所以,对该字段内容进行更新后,视图将无法写回源表。当视图再次打开时,数据重新进行计算,所更新值无效。
而语句2表示选择视图中字段,是一个正确语句,故可以执行。所以答案为A。