问答题


阅读以下某工厂人事信息管理系统数据库的设计说明,根据要求回答问题1~问题4。
[说明]
某工厂有多个部门,每个部门有多位职工,每位职工属于并且仅属于一个部门,每个部门有一位负责人,每个办公室有一部电话。每位职工的月工资大致是:800≤月工资≤4500元。
软件开发公司A为该工厂开发的信息管理数据库的部分关系模式如下所示。
职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)
部门(部门号,部门名,负责人代码,任职时间)
其中“职工”和“部门”的关系示例分别见表5-17和表5-18。

表5-17“职工”关系示例表

职工号 姓名 年龄 月工资 部门号 电话 办公室
1001 郑俊华 26 1000 1 8001234 主楼201
1002 王平 27 1100 1 8001234 主楼201
2001 王晓华 38 1300 2 8001235 1号楼302
2002 李力 24 800 2 8001236 1号楼303
3001 黎运军 42 1300 3 8001237 主楼202
4001 李源 24 800 3 8001245 2号楼102
4002 李兴民 36 1200 4 8001246 2号楼103
5001 赵欣 25 0 Null

表5-18“部门”关系示例表

部门号 部门名 负责人代码 任职时间
1 人事处 1002 2004-8-3
2 机关 2001 2004-8-3
3 销售科
4 生产科 4002 2003-6-1
5 车间

[问题4]
假定分别在“职工”关系中的“年龄”和“月工资”字段上创建了索引,如下的Select查询语句可能不会促使查询优化器使用索引,从而降低查询效率,请写出既可以完成相同功能又可以提高查询效率的 SQL语句。

【参考答案】

[问题4] 本试题所给出的原Select查询语句中使用了条件or,系统在查询的时候将对全表进行扫描,不会促使查询优化器使......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)