某企业职工和部门的关系模式如下所示,其中部门负责人也是一个职工。职工和部门关系的外键分别是()。
职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)
部门(部门号,部门名,负责人代码,任职时间)
查询每个部门中月工资最高的“职工号”的SQL查询语句如下:
Select 职工号from职工as E
where月工资=(Select Max(月工资) from职工as M())。
问题1选项
A.职工号和部门号
B.部门号和负责人代码
C.职工号和负责人代码
D.部门号和职工号
问题2选项
A.where M.职工号=E.职工号
B.where M.职工号=E.负责人代码
C.where M.部门号=部门号
D.where M.部门号=E.部门号
本题考查的是关系数据库中关系模式和SQL查询方面的基础知识。
试题(1)的正确答案是B。因为,作为主键其值能唯一地标识元组的一个或多个属性,主键通常也称为主码。所谓外键是指如果关系模式R中的属性或属性组不是该关系的码,但它是其他关系的码,那么该属性集对关系模式R而言是外键,通常也称外码。根据题意分析,职工关系中的主键是职工号,部门关系中的主键是部门号。显然,职工关系中的外键是部门号。但是,部门关系中的外键是负责人代码,为什么?因为题中说明部门负责人也是一个职工,这样负责人代码的取值域为职工号,所以根据外键定义部门关系中的外键是负责人代码。
试题(2)的正确答案是D。正确的查询每个部门中月工资最高的“职工号”的SQL查询语句如下:
Select 职工号 from 职工as E
where月工资=(SelectMax(月工资)from职工asM whereto.部门号=E,部门号);
此题子查询“Select Max(月工资)from职工as M where M.部门号=E.部门号”意为找出M.部门号最高月工资,主查询“Select职工号from职工as Ewhere月工资=”意为该职工的月工资等于最高工资。