根据上述说明,由SQL定义的“职工”和“部门”的关系模式,以及统计各部门的人数C、工资总数Totals、平均工资Averages的D_S视图如下所示,请在空缺处填入正确的内容。 Create Table 部门 (部门号 CHAR(1) (a)

admin2005-03-20  38

问题 根据上述说明,由SQL定义的“职工”和“部门”的关系模式,以及统计各部门的人数C、工资总数Totals、平均工资Averages的D_S视图如下所示,请在空缺处填入正确的内容。
   Create Table 部门 (部门号    CHAR(1)  (a),
                 部门名          CHAR(16),
                 负责人代码      CHAR(4),
                 任职时间        DATE,
                         (b)        (职工号));
   Create Table职工(职工号      CHAR(4),
                姓名           CHAR(8),
                年龄           NUMBER(3),
                月工资         NUMBER(4),
                部门号         CHAR(1),
                电话           CHAR(8),
                办公室         CHAR(8),
                         (a)  (职工号),
                         (c) (部门号),
                CHECK((d)));
   Create View D_S(D,C,Totals,Averages)As
                  (Select 部门号, (e)     
                        from  职工
                               (f) );
假定分别在“职工”关系中的“年龄”和“月工资”字段上创建了索引,如下的Select查询语句可能不会促使查询优化器使用索引,从而降低查询效率,请写出既可以完成相同功能又可以提高查询效率的SQL语句。
   Select姓名,年龄,月工资from职工
   where年龄>45 or 月工资<1000;

选项

答案此问主要考查在查询中注意where子句中使用索引的问题。 Select 姓名,年龄,月工资 from 职工 where 年龄>45; union Select 姓名,年龄,月工资 from 职工 where 年龄 月工资<1000;

解析 问题5中的Select查询语句中使用了条件 or,系统在查询的时候将对全表进行扫描,不会促使查询优化器使用索引,从而降低了查询效率。改正的方法是去掉or,修改后的 SQL语句如下:
   Select 姓名,年龄,月工资 from 职工
        where 年龄>45;
   union
   Select姓名,年龄,月上资 from 职工
       where 年龄 月工资<1000;
转载请注明原文地址:https://kaotiyun.com/show/38UZ777K
0

相关试题推荐
最新回复(0)