当前位置:首页 > 全部子站 > IT > 水平考试

2010软考软件设计师考前练习试题及答案解析(5)2

来源:长理培训发布时间:2017-11-26 15:22:03

 (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.部门号

责编:罗莉

发表评论(共0条评论)
请自觉遵守互联网相关政策法规,评论内容只代表网友观点,发表审核后显示!

国家电网校园招聘考试直播课程通关班

  • 讲师:刘萍萍 / 谢楠
  • 课时:160h
  • 价格 4580

特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关

配套通关班送国网在线题库一套

课程专业名称
讲师
课时
查看课程

国家电网招聘考试录播视频课程

  • 讲师:崔莹莹 / 刘萍萍
  • 课时:180h
  • 价格 3580

特色解密新课程高频考点,免费学习,助力一次通关

配套全套国网视频课程免费学习

课程专业名称
讲师
课时
查看课程
在线题库
面授课程更多>>
图书商城更多>>
在线报名
  • 报考专业:
    *(必填)
  • 姓名:
    *(必填)
  • 手机号码:
    *(必填)
返回顶部