下午卷
试题二(共15 分)
阅读下列说明,回答问题1 和问题2,将解答填入答题纸的对应栏内。
保持父图与子图平衡,父图中加工的输入输出必与它的子图输入输出在数量与名字上相同。
如父图的一个输入或输出数据流对应于子图中几个输入或输出数据流,而子图中组成这些流据流的数据项全体正好是父图中的这个数据流,那么它们仍然是平衡的。
某企业信息系统的部分关系模式及属性说明如下:
(1)员工关系模式:员工(员工编号,姓名,部门,工资,职务,教育水平),其中员工编号是主键,部门是外键,参照部门关系模式的部门编号属性。
(2)部门关系模式:部门(部门编号,部门名称,经理),其中部门编号是主键,经理是外键,参照员工关系模式的员工编号属性。
(3)项目关系模式:项目(项目编号,项目名称,所属部门,负责人),其中项目编号是主键,所属部门和负责人是外键,分别参照部门关系模式和员工关系模式的部门编号和员工编号属性。
(4)员工项目关系模式:员工项目(员工编号,项目编号),其中员工编号和项目编号是主键,同时员工编号和项目编号也是外键,分别参照员工关系模式的员工编号和项目关系模式的项目编号。
【问题1】(2 分)
假设定义员工关系模式时,没有定义主键和外键。请用SQL 语句补充定义员工关系模式的实体完整性约束和参照完整性约束。
(a)alter table 员工add primary key pk_name on 员工编号;
(b)alter table 员工add foreign key fk_name on 部门references 部门(部门编号);
【问题2】(13 分)
请将下列SQL 查询语句补充完整。
(1)查询平均工资(不包含职务为经理的员工)超过3000 的部门的编号,部门名称及其平均工资,并按平均工资从高到低排序。
SELECT 部门编号,部门名称,(c)_avg(工资)__AS 平均工资
FROM 员工,部门
WHERE_职务<> '经理'__(d)
GROUP BY__部门编号,部门名称_(e)
HAVING___avg(工资) >3000___(f) (g);
(2)查询工资大于全体员工平均工资的员工编号,姓名和工资。
(3) SELECT 员工编号,姓名,工资
(4) FROM 员工
WHERE__工资> (select avg(工资) from 员工)_(h);
(3)查询没有承担任何项目的部门编号和部门名称。
SELECT 部门编号,部门名称
FROM 部门
WHERE (i)_not exists_(SELECT.FROM 项目WHERE_部门.部门编号= 项目.所属
部门_(i)_);
(4)查询研发部所有员工的员工编号和教育水平,若教育水平大于20,则输出研究生;若教育水平小于等于20,并大于16,则输出本科生;否则输出其他。
SELECT 员工编号,
CASE
WHEN 教育水平> 20 THEN‘研究生’
When _(教育水平<=20 and 教育水平>16)____then '本科生'___(k)
Else __'其他'__________(l)
END
FROM 员工,部门
相关链接:
数据库系统工程师考试知识点分析与真题详解(第4版)
数据库系统工程师考试历年试题分析与解答(第4版)
数据库系统工程师考试下午知识点精讲与考前必练
数据库系统工程师考试考前串讲