以下是CLASSES和SCHEDULE表的结构(所包含的列及列的定义):
CLASSES
---------
ID NUMBER(9)
CLASS_NAME VARCHAR2(20)
TEACHER_ID NUMBER(9)
SCHEDULE
------------
CLASS_TIME DATE
CLASS_IDNUMBER(9)
如需要创建一个视图,而这个视图将显示每节课的上课时间(class time)、课程名(class name)并按教师id (teacher id)的顺序排序。使用了如下的语句,请问这一语句将提供哪一个结果
CREATE VIEW class_schedule
AS
SELECT
c.class_name, s.class_time
FROM
classes c, schedule s
WHERE
c.id=s.class_id;A.该语句将创建视图CLASS_SCHEDULE并取得所希望的结果
B.该语句将创建视图CLASS_SCHEDULE,但是不能获取所希望的结果
C.该语句将返回一个语法错误,因为创建视图(Create View)语句不能基于连接查询(Join Query)
D.该语句将返回一个语法错误,因为创建视图(Create View)语句没有包含ORDER BY子句
参考答案:B
解析: 这一题是测试对创建视图命令的理解程度。根据有关如何创建视图的介绍及随后的例题,可以确定本题创建视图语句的语法是没有任何问题的,所以选项C和D肯定是错误的。
由于题目要求显示的结果要按教师id (teacher_id)的顺序排序,而在这个题目的创建视图语句中并没有ORDER BY teacher_id子句,因此尽管显示的内容是对的,但并不没有按教师id的顺序显示,不能获取所希望的结果。所以选项A是错误的,而只有选项B是正确的。