三)    多项选择题(本大题共25小题,每题2分,共50分)在每个小题列出的选项中至少有两个或以上的选项符合题目要求。多选、少选、错选均无分。
试题51 (        )
下面哪些选项描述是正确的:
供选择的答案:
A:    order by缺省排序查询显示结果是升序排列的。
B:    在order by 子句中不能用字段的别名。
C:    在group by 子句中不能用字段的别名。
D: null值在升序排列中是被排列在所有非空值之后的。
E:    如果没有order by子句,查询结果将按照select列的第一个字段降序排列。

试题52 (        )
脚本文件static_param.sql 内容如下:
delete from region;
commit;

insert into region(a, b) values(‘010’,’北京’); 
insert into region (a, b) values(‘021’,’上海’);
insert into region (a, b) values(‘020’,’广州’);
commit;
在oracle的sqlplus下能正确执行static_param.sql 脚本文件的选项是:
供选择的答案:
A:    static_param.sql
B:    @static_param.sql
C:    execute static_param.sql
D:    start static_param.sql
E:    begin static_param.sql end;
F:    run static_param.sql

试题53 (        )
在PL/SQL程序中包含下面那些部分?
供选择的答案:
A:    执行
B:    子程序
C:    声明
D:    异常
E:    断言

试题54 (        )
在PL/SQL代码块中,下列哪些情况下会产生异常?
供选择的答案:
A:    select语句中包含一个group by 子句。
B:    select语句中没有where子句。
C:    select语句返回结果集为空。
D:    select语句返回多条记录。
E:    select语句返回空字段的记录。    

试题55 (        )
下面所列出的函数中,哪些是group by 函数?
供选择的答案:
A:    max
B:    min
C:    sqrt
D:    avg
E:    sum

试题56(        )
分析下面SQL代码块:
begin
    delete from test1;
    delete from test2;

    for i in 5..20 loop
        if ( i=5 or i=10
or i=15 or i=20
) then
            insert into test1(oid) values(i);
        else
            insert into test2(oid) values(i);
            commit;
        end if;
    end loop;
    
    rollback;
end ;

对运行该代码块的结果说法正确的选项是:
供选择的答案:
A:    向test1表中插入0条记录
B:    向test1表中插入3条记录
C:    向test1表中插入4条记录
D:    向test2表中插入0条记录
E:    向test2表中插入12条记录
F:    向test2表中插入16条记录

试题57(        )
假设你要查询客户名称为Tom的客户资料记录,但你不知道客户名称大小写情况,下面哪些语句将查询出所有客户名称为Tom的客户记录(忽略大小写)?。
供选择的答案:
A:    select * from cust where custname=’tom’; 
B:    select * from cust where upper(custname)=’tom’;
C:    select * from cust where lower(custname)=’tom’;
D:    select * from cust where upper(custname)= upper (’tom’);
E:    select * from cust where custname=’TOM’;
F:    select * from cust where upper(custname)=’TOM’;

试题58 (        )
下列哪些说法不符合数据库编程规范?
供选择的答案:
A:    关键字之后要留空格,而在表名、存储过程名、函数名等数据库对象之后不要留空格。
B:    可以把多条语句写在一行中,但一定要用分号”;”把不同语句分隔开来。
C:    一般情况下源代码有效注释量不低于20%,且建议尽量用”/**/”来添加注释,少用”- -“来进行注释。
D: 固定长度的字符串类型采用char,长度不固定的字符串采用varchar2,一定要避免长度不固定的情况下采用char。
E: 防止误操作将整个表的数据清空或修改,对delete,update语句操作时必须带where条件。对于全表
则使用where 1=1 条件 。
F: 为了保证事物的完整性,事物提交要及时,在循环操作中commit 尽量写在循环体内部。
G: 当查询返回的记录数量很多时,从记录表中读取的数据量也很大,不如不通过索引,直接全表扫描的效率
将会更高。

试题59 (        )
下面所列的语句中,哪些是不合法的循环结构?
供选择的答案:
A:    for I between 1 and 10 then …(program)…; end loop;
B:    for I 1..10 loop …(program) …; else …(program)…;end loop;
C:    do while v_test is true loop …(program)…; end loop;
D: loop; …(program)…; end loop;

试题60 (        )
现有一个oracle建表脚本如下:
1)create table t_distill_stat
2)(seg_id   number
3) constraint pk_distill_id primary key,
4) 200710_cycle number,
5) NUMBER_tab_name varchar2(32),
6) constraint tab_name_nn not null,
7) $_time_len number);
    执行上面脚本时,哪几行将返回错误?
供选择的答案:
A:    1
B:    2
C:    3
D: 4
E: 5
F: 6
G: 7

试题61 (        )
在日常工作中,对数据库操作维护描述正确的选项是:
供选择的答案:
A:    在生产环境中,要严格管理数据库用户的密码和权限,密码不要与用户名相同。
B:    必须按照应用需求,设计不同的用户访问权限。包括应用系统管理用户,普通用户等,按照业务需求建立不同的应用角色。用户访问另外的用户对象时,应该通过创建同义词对象synonym进行访问。
C:    在中间件控制事务的业务程序调用的存储过程等中,不要出现对于事务的提交和回退,容易造成本地事务。
D: 对数据库表对象进行大批量的增、删、改操作后建议对该表进行一致性检查和索引的重建。

试题62 (        )
对查询结果进行排序会一定程度地降低系统的性能,下列哪些操作用在SQL语句中会启动SQL引擎执行消耗系统资源的排序?
供选择的答案:
A:    DISTINCT
B:    MINUS。
C:    INTERSECT。
D: UNION
E: UNION ALL
F: ORDER BY

试题63 (        )
在做数据库SQL调优时,根据实际应用情况,合理的调整索引效果非常明显,下列哪些选项是在合理的建立索引?
供选择的答案:
A:    经常与其他表进行连接的表,在连接字段上应建立索引。
B:    索引应该建在选择性高的字段上。
C:    当查询返回的记录数很多时,从记录表中读取的数据量也很大,不如不通过索引,直接全表扫描效率更高。
D: 频繁进行数据操作的表,不要建立太多的索引。
E: 在业务数据大表中,一定要多建索引,确保查询效率高。
F: 索引应该建在选择性低的字段上。

试题64 (        )
在我们的日常工作中,合理的建立索引还不够,还需要在我们编写SQL语句是注意如何让我们编写的正确的使用索引,下列哪些选项能让我们正确使用上索引?
供选择的答案:
A:    增加查询的范围,限制全范围的搜索。
B:    在索引列上进行运算操作,应把运算操作右移。
C:    利用hint 强制指定索引。
D: 避免不必要的类型转换,要了解“隐藏”的类型转换。

试题65 (        )
在日常工作中编写应用脚本或维护代码脚本时,关于注释说法正确的选项是:
供选择的答案:
A:     注释的原则是有助于程序阅读理解,便于后期维护,在该加的地方都加了,注释不宜太多但也不能太少,语言须准确、易懂、简洁。
B:    对程序分支必须书写注释,且注释与所描述代码进行同样的缩排。
C:    所有变量定义需要加注释,说明该变量的用途和含义,禁止在注释中使用缩写,特别是非常用的缩写。
D: 在代码的功能、意图层次上进行注释,提供有用、额外的信息。

试题66 (        )
 有一千万级数据量的业务数据表SUBS,在字段 SERVNUMBER VARCHAR2(12) 上建立了索引,请问下面哪些选项能够正确使用索引进行查询?
供选择的答案:
A:    select * from subs where servnumber like ‘1385318%’;
B:    select * from subs where servnumber = 13853188888;
C:    select * from subs where servnumber = ‘13853188888’;
D: v_telnum  number := 13853188888;
     select * from subs where servnumber = v_telnum;
E: v_telnum  varchar2(12) := ‘13853188888’;
     select * from subs where servnumber = v_telnum;

试题67 (        )
某大型应用数据库系统中,有T1和T2两个表,并且这两个表通过字段 a 关联,不同的开发人员编写了两个不同的语句来实现同一个查询结果,请选出查询效率分析正确的选项:
1)  select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ;
2)  select * from T1 where T1.a in (select T2.a from T2) ;
供选择的答案:
A:    T1数据量非常大而T2数据量小时,语句1) 的查询效率高。
B:    T1数据量小而T2数据量非常大时,语句2) 的查询效率高。
C:    T1数据量小而T2数据量非常大时,语句1) 的查询效率高。
D: T1数据量非常大而T2数据量小时,语句2) 的查询效率高。
E: 语句1) 的查询效率高。
F: 语句2) 的查询效率高。

试题68 (        )
有一数据量达千万级的业务数据表T,并在字段 a 上建一索引,请问下列哪些查询语句不能使用索引,会进行全表扫描?
供选择的答案:
A:    select * from t where a is not null;
B:    select * from t where a like ‘abc%’;
C:    select * from t where a <> ‘Tom’;
D: select * from t where nvl(a,’abc’) = ‘abc’;
F: select * from t where a = ‘Tom’;

试题69 (        )
现有一个shell脚本程序test.sh对所有用户都有查看、修改、运行的权利,要求其所属用户可以对它进行查看、修改、运行,其属组用户可以对其进行查看和修改,其他用户只能查看它,请问下列哪些命令可以满足这个需求?
供选择的答案:
A:    chmod 755 test.log
B:    chmod 764 test.log
C:    chmod 751 test.log
D:    chmod g-x test.log;chmod o-wx test.log
E:    chmod a-x test.log;chmod u-wx test.log
F:    chmod g-x, o-wx  test.log

试题70(        )
下面选项中哪些选项相对路径?
供选择的答案:
A:    /oracle/home/admin
B:    ../../home/jre
C:    network/admin/log
D:    /

试题71 (        )
假设hw1、hw2、ch1和ch2是文件,而book和homework是目录,下面哪些选项在执行命令时会产生错误信息。
供选择的答案:
A:    $  cp hw1 homework hw2 book
B:    $  cp hw1 ch2 homework
C:    $  rm hw2 ch2 
D:    $  rm hw1 homework ch1

试题72 (        )
在shell程序脚本中,变量名合法选项是:
供选择的答案:
A:    _TAB_NAME
B:    2_RUN_FLAG
C:    _FLAG*2
D:    _LOGIN_NAME_1
E:    USRNAME&PASSWD
F:    V_count

试题73 (        )
我们在shell编程过程中常常用到重定向,下列关于重定向说法正确的选项是:
供选择的答案:
A:    >, >>, <, <<, |等都是重定向符号。
B:    用 > 重定向覆盖文件原来的内容,而用 >> 重定向不会覆盖文件原来的内容,只是把输出的信息追加到原来文件的后面。
C: 命令rm ch1.txt 2>&1 是把 STDERR 的输出重定向到 STDOUT。
D:    执行命令rm hw1.txt > /dev/null 将会把rm命令的所有输出信息都丢弃掉。

试题74(        )
请选出描述正确的选项:
供选择的答案:
A:    在编写SHELL脚本程序时,给变量赋值等号两边不能有空格,但对判断语句表的=或者其他符号两边必须有空格,否则为赋值运算。
B:select选择语句一般与case语句联合使用,经常用于用户生成用户交互菜单。
C:if [ “X$str” = “X” ]; then 中的“X“没有任何含义,只是为了增加可读性。
D:定义一个函数test 如下:
        test()
{
          return 1
}

  对该函数正确的调用方法是:
   test param
  ret=$?

试题75(        )
仔细走读下面shell脚本程序,选择出对该程序理解正确的选项:
#!/bin/sh
cnt=1
while [ cnt –le 100 ]
do
    if [ -d /databak ]
    then
        mkdir –p /databak/backup${cnt}
        chmod 754 /databak/backup${cnt}
        echo “backup${cnt}”
        let “cnt = cnt + 1”
    else
        mkdir /databak
        mkdir –p /databak/backup${cnt}
        chmod 754 /databak/backup${cnt}
        echo “backup${cnt}”
        cnt=$(($cnt+1))
    fi
done

供选择的答案:
A:    如果目录/databak不存在程序会退出。
B:    运行该脚本会自动创建99个目录,即backup1~ backup99。
C:    运行该脚本会自动创建100个目录,即backup1~ backup100。
D:    创建的各个目录所属用户组的权限为:读、执行。