以下是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 |
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是正确的。