- 讲师:刘萍萍 / 谢楠
- 课时:160h
- 价格 4580 元
特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关
配套通关班送国网在线题库一套
(4)由于在职工表的定义中,职工号主码是唯一标识每个元组(记录)的,而在表11第①行中的职工号是"1001",在题目给出的表8"职工"关系示例表中已经存在该职主号的记录,为了保证实体的完整性,该条记录不能插入。
(5)表11第②行的元组可以插入到表8"职工"关系表中,尽管部门号、电话和办公室为空,但是它表示该雇员暂时没有分配到某个部门。虽然职工表中部门号是外键,但在定义中也没有约束它不能为空。
(6)表11第③行的元组不能插入到表8"职工"关系表中,部门号是外键,而在部门关系中找不到部门号为"6"的元组,违反了参照完整性,所以不能做插入操作。
【问题3】(5分)
查询每个部门中月工资最高的"职工号"的SQL查询语句如下。
Select 职工号 from 职工E
where 月工资=(Select Max(月工资)
from职工as M
where M.部门号=E.部门号)
(1)请用30字以内文字简要说明该查询语句对查询效率的影响。
(2)对该查询语句进行修改,使它既可以完成相同功能,又可以提高查询效率。
【问题3】答案解析:
这是一道要求考生分析查询效率的综合分析题。通常在涉及相关查询的某些情形中,构造临时关系可以提高查询效率。
(1)试题中所给出的SQL查询语句,对于外层的职工关系E中的每一个元组,都要对内层的整个职工关系M进行检索,因此查询效率不高。
(2)对该查询语句进行修改,使它既可以完成相同功能,又可以提高查询效率。
解答思路①
改正后的SQL语句使用了临时表。
Select Max(月工资) as 最高工资,部门号 into Temp from职工
Group by部门号
Select 职工号 from职工,Temp
where月工资=最高工资 and 职工。部门号=Temp.部门号
解答思路②
Select 职工号 from 职工,(Select Max(月工资) as 最高工资,部门号 Group by 部门号)
as depMax
where 月工资=最高工资 and 职工。部门号=depMax.部门号
责编:罗莉
课程专业名称 |
讲师 |
课时 |
查看课程 |
---|
课程专业名称 |
讲师 |
课时 |
查看课程 |
---|
点击加载更多评论>>