问题 单项选择题

以下是EMPLOYEE表的详细定义,其中也包括了约束的描述。

EMPLOYEE
Column Name EMPLOYEE_ID NAME JOB MANAGER DATE_HIRED SALARY BONUS DEPIARTMENT_ID
Key-Type PK              
Nulls/Unique NN,U       NN     NN
FK Table                
FK Column                
Datatype HUM VARCHAR2 VARCHAR2 NUM DATE NUM HUM NUM
Length 6 20 9 6   7, 2 7, 2 2
基于这个EMPLOYEE表创建了一个视图,并允许用户通过这个视图向EMPLOYEE表中插入数据。请问,在如下的语句中,应该使用哪个语句创建这个视图

A.CREATE VIEW department_v
AS SELECT DISTINCT department
FROM
employee;
B.CREATE VIEW emp_info_v
AS SELECT employee_id, name, job, manager
FROM
employee;
C.CREATE VIEW emp_info_v
AS SELECT employee_id, name, job, manager, department_id, date_hired
FROM
employee;
D.CREATE VIEW dept_salary_v
AS SELECT department_id,AVG (salary) "average salary"
FROM
employee
GROUP BY department_id;

答案

参考答案:C

解析: 这一题是一个比较复杂的题,该题是测试对通过视图进行DML操作的规则的熟悉程度。根据有关通过视图进行DML操作的规则介绍,可知如果在一个视图中包含了分组函数、GROUP BY子句或DISTINCT关键字,就不能通过该视图进行插入(INSERT)操作,所以可以断定选项A和D肯定是错误的。
因为题目要求所创建的视图必须允许用户通过这个视图向EMPLOYEE表中插入数据,所以在创建这个视图时必须保证那些带有NOTNULL约束的列全部包括在这个视图中。现在仔细检查一下EMPLOYEE表中每一列的定义,为了满足题目的要求我们必须把employee_id、date_hired、和department_id这三个带有NOT NULL约束的列包含在所创建的视图中,而满足这一条件的只能是选项C的语句,所以只有选项C是正确的。

选择题
单项选择题 配伍题