问题 单项选择题

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

问答题 案例分析题

某市新建科技馆工程,地下2层,地上24层,地上裙房4层,通过正规招投标程序,建设单位最终选定了一定具有相应施n总承包资质的A建筑公司为中标单位,并与其签订了工程总承包合同。

施工过程中发生如下事件:

事件一:建设单位将该工程金属门窗工程指定分包,并与具备相应资质条件的B公司签订门窗施工合同。

事件二:由于工期紧张,A公司在征得建设单位同意后,决定自行施工主楼,将裙房工程分包给具备相应资质的C公司,将装饰装修分包给具备相应资质的D公司。

事件二::A公司在征得建设单位同意后,与E劳务公司针对主楼施工签订了劳务分包合同,经查E公司具备相应劳务资质。由于该工程工期压力较大,E公司劳务人员不够,将部分劳务分包给同样具备相应资质的F劳务公司。

事件四:由于D公司管理不善,出现施工质量问题,给建设单位造成一定损失,建设单位WA公司为项目总承包,于是就此事向A公司提出索赔要求。A公司认为损失由D公司造成,且分包给D公司也建设单位也同意,所以建设单位应向D公司提出索赔,A公司不应承担质量责任。

【问题】

1.事件一中,关于建设单位指定分包门窗工程的做法是否正确?并说明理由。

2.事件二中,C公司、D公司的分包是否合法?分别说明理由。

3.事件三中,E公司、F公司的分包是否合法?分别说明理由。

4.事件四中,建设单位向A单位索赔是否正确?为什么?A公司的说法是否正确?为什么?

选择题