【DB笔试面试100-200】

【DB笔试面试101】

Which statement is true regarding the COALESCE function?
A、 It can have a maximum of five expressions in a list.
B、 It returns the highest NOT NULL value in the list for all rows.
C、 It requires that all expressions in the list must be of the same data type.
D、 It requires that at least one of the expressions in the list must have a NOT NULL value.
题目的意思是关于COALESCE函数哪些说法是正确的,考察的是对COALESCE函数的理解。COALESCE函数用来匹配多个字段的值,如果表达式1的值为NULL,那么显示表达式2的值,如果表达式2也为空,那么显示表达式3的值,依次类推。
本题中,对于选项A,选项说最大5个列表,说法错误。所以,选项A错误。
对于选项B,选项说返回列表中最大的值。所以,选项B错误。
对于选项C,选项说所有的表达式应该有相同的数据类型,说法是正确的。所以,选项C正确。
对于选项D,选项说列表中至少需要有一个非空值,这个说法错误,列表可以全部为NULL。所以,选项D错误。
所以,本题的答案为C。

【DB笔试面试102】

Which statement is true regarding the COALESCE function?
A、 It can have a maximum of five expressions in a list.
B、 It returns the highest NOT NULL value in the list for all rows.
C、 It requires that all expressions in the list must be of the same data type.
D、 It requires that at least one of the expressions in the list must have a NOT NULL value.
题目的意思是关于COALESCE函数哪些说法是正确的,考察的是对COALESCE函数的理解。COALESCE函数用来匹配多个字段的值,如果表达式1的值为NULL,那么显示表达式2的值,如果表达式2也为空,那么显示表达式3的值,依次类推。
本题中,对于选项A,选项说最大5个列表,说法错误。所以,选项A错误。
对于选项B,选项说返回列表中最大的值。所以,选项B错误。
对于选项C,选项说所有的表达式应该有相同的数据类型,说法是正确的。所以,选项C正确。
对于选项D,选项说列表中至少需要有一个非空值,这个说法错误,列表可以全部为NULL。所以,选项D错误。
所以,本题的答案为C。

【DB笔试面试103】在Oracle中,如何将一个IP地址分解为4个字段?

使用Oracle的正则表达式函数REGEXP_SUBSTR,如下所示:
SYS@lhrdb> SELECT REGEXP_SUBSTR(V.IP, ‘[^.]+’, 1, 1) A,
2 REGEXP_SUBSTR(V.IP, ‘[^.]+’, 1, 2) B,
3 REGEXP_SUBSTR(V.IP, ‘[^.]+’, 1, 3) C,
4 REGEXP_SUBSTR(V.IP, ‘[^.]+’, 1, 4) D
5 FROM (SELECT ‘192.168.59.130’ IP FROM DUAL) V;
A B C D


192 168 59 130

【DB笔试面试104】

假定SERV表有a、b、c三个字段:SERV(a number(10),b number(10),c number(10))。表SERV的内容如下:
这里写图片描述
以下两段PL/SQL的功能是根据a的值,查找出对应b的值赋予变量x,请分别判断这两段PL/SQL是否能正常执行,若不能正常执行,请指出错误的原因并修改。
declare
x number;
begin
select b into x from serv where a=1;
dbms_output.put_line(to_char(x));
end;

declare
x number;
begin
select b into x from serv where a=2;
dbms_output.put_line(to_char(x));
end;
这2段程序除了WHERE语句后的值不同以外,其它均一样。对于程序(1),当a=1时,返回了2行记录,对于程序(2),当a=2时,返回了1行记录。对于变量x而言,只能接受一个值,所以,程序2执行不报错,程序(1)执行报错:ORA-01422: exact fetch returns more than requested number of rows。
对于程序(1)有2种修改方法,第一种就是将“select b into x from serv where a=1;”修改为“select distinct b into x from serv where a=1;”。第二种方法就是返回集合类型,修改后的程序块如下所示:
DECLARE
VARCURSOR SYS_REFCURSOR;
X SERV%ROWTYPE;
BEGIN
OPEN VARCURSOR FOR
SELECT T.* FROM SERV T WHERE A=1;
LOOP
FETCH VARCURSOR
INTO X;
EXIT WHEN VARCURSOR%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(R.B);
END LOOP;
END;

【DB笔试面试105】

数据库中有一张如下所示的表,表名为sales。
这里写图片描述
环境如下所示:
这里写图片描述
这是一道行转列的题目,采用聚合函数+DECODE或CASE来回答即可,如下所示:
这里写图片描述
此题若使用PIVOT函数,如下所示:
这里写图片描述

此题若使用临时表的方式,如下所示:
这里写图片描述

【DB笔试面试106】在Oracle中,下面有关SQL绑定变量的描述中,错误的是()

下面有关SQL绑定变量的描述中,错误的是()
A、绑定变量是指在SQL语句中使用变量,改变变量的值来改变SQL语句的执行结果
B、使用绑定变量,可以减少SQL语句的解析,能减少数据库引擎消耗在SQL语句解析上的资源
C、使用绑定变量,提高了编程效率和可靠性,减少访问数据库的次数
D、使用绑定变量,查询优化器会预估的比字面变量更加真实
绑定变量是相对文本变量来讲的,所谓文本变量是指在SQL中直接书写查询条件,这样的SQL在不同条件下需要反复解析,绑定变量是指使用变量来代替直接书写条件,查询绑定变量在运行时传递,然后绑定执行。优点是减少硬解析,降低CPU的争用,节省SHARED_POOL;缺点是不能使用固定的执行计划,SQL优化比较困难。
本题中,对于选项A,绑定变量就是之前不知道具体的值,只有运行的时候才知道值,改变变量的值来改变SQL语句的执行结果。所以,选项A错误。
对于选项B,使用绑定变量,可以减少SQL语句的解析,说法正确。所以,选项B错误。
对于选项C,使用绑定变量,减少解析次数,提高了编程效率和可靠性。所以,选项C错误。
对于选项D,使用绑定变量,查询优化器不知道具体的值,所以,其执行计划也不真实。所以,选项D正确。
所以,本题的答案为D。

【DB笔试面试107】

有如下图的数据,那么SQL语句SELECT AVG(AGE) FROM STUINFO;的结果是多少?STUINFO表的数据如下图所示,AGE的类型为NUMBER
这里写图片描述
由于NULL值不参与运算,所以,(5+4+5+6+6)/5=5.2。

【DB笔试面试108】在Oracle中,sqldlr true 。。。SQL*Loader utility?()

Which two statements are true regarding the usage of the SQL*Loader utility? (Choose two.)
A.You can load data into multiple tables during the same load session.
B.You can load data from multiple files to a table during the same load session.
C.You cannot perform selective data loading based on the values available in the records.
D.You can use an export file generated by the EXPDP utility as an input data file to load the data.
题目中要求选出与SQL*Loader工具的说法正确的2个选项。
本题中,对于选项A,可以在一个SQL*Loader会话中导入多个表的数据,根据前边的分析,该功能可以实现。所以,选项A正确。
对于选项B,可以在一个SQL*Loader会话中将多个数据文件导入到1个表中,根据前边的分析,该功能可以实现。所以,选项B正确。
对于选项C,在导入数据的时候可以使用WHEN关键词实现选择性的导入。所以,选项C错误。
对于选项D,SQL*Loader是文本导入工具,只能导入文本数据,而exp导出的文件属于二进制文件,所以不能导入。所以,选项D错误。
所以,本题的答案为A、B。

【DB笔试面试109】在Oracle中,Which 。。。conventional path of SQL*Loader?()

Which statement is true about loading data using the conventional path of SQL*Loader?
A、Redo is not generated while performing conventional path loads.
B、Only PRIMARY KEY, UNIQUE KEY, and NOT NULL constraints are checked.
C、The SQL*Loader control file is a text file that contains data definition language (DDL) instructions.
D、Instead of performing transactions, SQL*Loader directly writes data blocks to the data files.
E、INSERT triggers are disabled before the conventional path load and reenabled at the end of the load.
题目要求选出与SQL*Loader的常规路径加载说法正确的选项。
本题中,对于选项A,常规路径加载的时候会产生REDO日志的,选项A错误。
对于选项B,所有的约束均有效,而不止PRIMARY KEY、UNIQUE KEY和NOT NULL这3项约束。所以,选项B错误。
对于选项C,SQL*Loader的控制文件是一个文本文件,其中包含了一些DDL结构。所以,选项C正确。
对于选项D,SQL*Loader的常规路径加载是经过内存的,而不是直接写入数据文件。所以,选项D错误。
对于选项E,SQL*Loader加载的时候,表上的相关触发器是会执行的。所以,选项E错误。
所以,本题的答案为C。

【DB笔试面试110】在Oracle中,下列关于AUTHID的说法哪些是正确的?()

下列关于AUTHID的说法哪些是正确的?()
A、AUTHID子句是用于指定哪些用户被授权执行一个程序单元
B、从Oracle 11gR1开始,所有的程序单元都必须指明AUTHID属性
C、一个PL/SQL程序的AUTHID属性会影响该程序在运行的时候发出的SQL语句所涉及的名字解析和权限检查
D、AUTHID属性可以在包头(Package Specification)和对象类型的头部(Object Type Specification)指定,但不能够在包体(Package Body)和类型体(Object Type Body)指定

本题中,对于选项A,AUTHID子句是用于指定一个程序单元是运行于“调用者权限”(AUTHID CURRENT_USER)还是“定义者权限”(AUTHID DEFINER)。所以,选项A错误。

对于选项B,AUTHID子句是可选的,缺省设置为AUTHID DEFINER。所以,选项B错误。
对于选项C,实际上这就是Oracle文档中关于AUTHID的定义。所以,选项C正确。
对于选项D,AUTHID可以在CREATE FUNCTION、CREATE PACKAGE、CREATE PROCEDURE、CREATE TYPE和ALTER TYPE中包含。但不能在CREATE PACKAGE BODY或者CREATE TYPE BODY中包含AUTHID。所以,选项C正确。
所以,本题的答案为C、D。

【DB笔试面试111】在Oracle中,Note the following structures。。。逻辑结构()

Note the following structures in your database server:
1、Extents
2、OS Blocks
3、Tablespace
4、Segments
5、Oracle Data Block
Which option has the correct arrangement of these structures FROM the smallest to the largest?()
A、2, 5, 1, 4, 3
B、1, 2, 3, 4, 5
C、5, 2, 1, 3, 4
D、2, 1, 5, 4, 3
Oracle中逻辑结构包括表空间、段、区和块。说明一下:数据库由表空间构成,而表空间又是由段构成,而段又是由区构成,而区又是由Oracle 块构成的这样的一种结构,可以提高数据库的效率,块 → 区 → 段 → 表空间 → 数据库。题目问的是从小到大的排序哪个是正确的。
本题中,对于选项A,OS BLOCKS->ORACLE DATA BLOCK->EXTENTS->SEGMENTS->TABLESPACE,排序正确。所以,选项A正确。
对于选项B,Extents不是最小的,排除掉。所以,选项B错误。
对于选项C,Oracle数据块也不是最小的,排除掉。所以,选项C错误。
对于选项D,块组成区,而不是区组成块。所以,选项D错误。
所以,本题的答案为A。

【DB笔试面试112】在Oracle中,下面有关TABLESPACE和DATAFILE之间的关系的描述中,说法错误的是()

下面有关TABLESPACE和DATAFILE之间的关系的描述中,说法错误的是()
A、一个TABLESPACE可以有一个或多个DATAFILE
B、每个DATAFILE只能在一个TABLESPACE内
C、TABLE中的数据,通过HASH算法分布在TABLESPACE中的各个DATAFILE中
D、DATAFILE是逻辑上的概念,TABLESPACE则在物理上储存了数据库的种种对象
关于数据库的逻辑结构和物理结构,TABLESPACE是逻辑上的概念,DATAFILE是物理上的概念。一个TABLESPACE可以由多个DATAFILE组成,一个DATAFILE不能跨越多个TABLESPACE。TABLE中的数据,通过HASH算法分布在TABLESPACE中的各个DATAFILE中,TABLESPACE是逻辑上的概念,DATAFILE则在物理上储存了数据库的种种对象。
表空间是Oracle数据库中最大的逻辑单位与存储空间单位,数据库系统通过表空间为数据库对象分配空间。表空间在物理上体现为磁盘数据文件,每一个表空间由一个或多个数据文件组成,一个数据文件只可与一个表空间相联系,这是逻辑与物理的统一。
本题中,对于选项A,一个TABLESPACE可以有一个或多个DATAFILE,说法是正确的。所以,选项A错误。
对于选项B,每个DATAFILE只能在一个TABLESPACE内,说法正确。所以,选项B错误。
对于选项C,TABLE中的数据,通过HASH算法分布在TABLESPACE中的各个DATAFILE中,说法正确。所以,选项C错误。
对于选项D,TABLESPACE是逻辑上的概念,DATAFILE是物理上的概念,选项中正好说反了。所以,选项D正确。
所以,本题的答案为D。

【DB笔试面试113】在Oracle中,DATA BLOCK,EXTENT和SEGMENT的区别是什么?

DATA BLOCK,EXTENT和SEGMENT的区别是什么?

DATA BLOCK是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的DATA BLOCK就组成了EXTENT。一个数据库对象拥有的所有EXTENTS被称为该对象的SEGMENT。

【DB笔试面试114】在Oracle中,。。。 background processes()

Note the following functionalities of various background processes:

1. Record the checkpoint information in data file headers.
2. Perform recovery at instance startup.
3. Cleanup unused temporary segments.
4. Free the resources used by a user process when it fails.
5. Dynamically register database services with listeners.
6. Monitor sessions for idle session timeout.
Which option has the correct functionalities listed for a background process?()
A、Archiver Process (ARCn):1, 2, 5
B、System Monitor Process (SMON):1, 4, 5
C、Process Monitor Process (PMON):4, 5, 6
D、Database Writer Process (DBWn):1, 3, 4
Oracle有一些非常重要的后台进程,如下所示:
(1)PMON:进程监视进程(Process Monitor Process)。
(2)SMON:系统监视进程(System Monitor Process)。
(3)DBWn:数据库写入器进程(Database Writer Process),将信息从SGA的数据库缓冲存储区中写入到数据库数据文件中。
(4)LGWR:日志写入器进程(Log Writer Process),将生成的REDO信息从日志缓冲区写入到数据库联机REDO日志中。
(5)CKPT:检查点进程(Checkpoint Process),在检查点操作期间,CKPT进程会通知DBWn检查此点。
本题描述中的1,将检查点记录在文件头属于CKPT的作用,2中在数据库启动的时候执行恢复操作属于SMON的作用,3中清理未使用的临时段也属于SMON的作用,4中释放用户的资源属于PMON的作用,5中动态注册数据库属于PMON的作用,6中监控会话的空闲时间属于PMON的作用。
本题中,对于选项A,1和2不属于ARCn的作用。所以,选项A错误。
对于选项B,4和5不属于SMON的作用。所以,选项B错误。
对于选项C,4、5和6都是PMON的作用。所以,选项C正确。
对于选项D,1、3和4都不是DBWn的作用。所以,选项D错误。
所以,本题的答案为C。
Oracle中还有一些其它的进程,具体分析可以参考BLOG:http://blog.itpub.net/26736162/viewspace-2121305

【DB笔试面试115】在Oracle中, Which three statements 。。。spfile。 ()

Which three statements regarding the server parameter file (SPFILE) are true? (Choose three.)
A、An SPFILE is abinary file.
B、An SPFILE cannot reside on a client.
C、An SPFILE cannot contain static parameters.
D、An SPFILE can store changes persistently across instance restarts.
E、An SPFILE can be read by the database server , but it is not written to by the server.
F、An SPFILE must be created manually , before creating a database, even if you use the Database Configuration Assistant(DBCA) to create the database.
本题考察的是SPFILE的相关知识。
本题中,对于选项A,SPFILE是一个二进制文件。所以,选项A正确。
对于选项B,SPFILE不能用在客户端。所以,选项B正确。
对于选项C,SPFILE可以包含静态参数。所以,选项C错误。
对于选项D,SPFILE可以永久存储参数的值。所以,选项D正确。
对于选项E,SPFILE可以由数据库进行写入。所以,选项E错误。
对于选项F,DBCA创建的数据库不用手动创建SPFILE。所以,选项F错误。
所以,本题的答案为A、B、D。

【DB笔试面试116】在Oracle hint中的DRIVING_SITE的作用是什么?

Oracle hint中的DRIVING_SITE的作用是什么?
日常工作中经常会用到分布式数据库查询,即通过DBLINK同时查询本地表和远程表。分布式查询一般有两种处理方式:一种将远程表数据取回本地,然后和本地表关联查询,获取最终结果;另一种将本地表数据传到远程和远程表关联查询后,再将关联结果取回。前一种处理方式可理解为只有一次网络传输操作比后一种少,也就作为了数据库的默认处理方式。DRIVING_SITE提示能够指定执行计划在远程还是本地做,使用DRIVING_SITE,特别是本地小结果集,远程大结果集,最终结果集较小时,希望计划在远程驱动,这样远程执行完毕,将结果集传输到本地,避免了大结果集的网络传输,从而达到整体优化的效果。使用DRIVING_SITE可以减少总体的网络传输数据量。
当DRIVING_SITE驱动的对象嵌套在视图中时,可通过DRIVING_SITE(V.T)方式来指定,其中V表示视图别名或名称,T表示视图里表的别名或名称。
需要注意的是,对于DML和DDL语句,DRIVING_SITE提示是失效的,会自动被Oracle忽略掉,此时将以目标表所在库为主计划驱动,相当于DRIVING_SITE(目标表库),此时可以通过视图转换来达到优化目的。DML和DDL中如果是对本地表做DML,主计划总是在本地做,会将远程数据拉到本地,相当于DRIVING_SITE(本地表)。如果是对远程表做DML,那么主计划总是在远程做,会将本地数据送到远程,相当于自动DRIVING_SITE(远程表)。
& 说明:
有关HINT的更多内容可以参考BLOG:http://blog.itpub.net/26736162/viewspace-2125011/http://blog.itpub.net/26736162/viewspace-2125709/http://blog.itpub.net/26736162/viewspace-2125815/

【DB笔试面试117】

You have statistics collected for some selected tables. Your requirement is that the statistics for the tables and all dependent indexes must not be overwritten by further statistics collection until a certain point of time. How would you achieve this?
A、Lock statistics for the tables.
B、Change STALE_PERCENT to zero for the tables.
C、Set the TIMED_ST A TISTICS parameter to TRUE.
D、Set the ST ATISTICS_LEVEL parameter to BASIC.
E、Set the OPTIMIZER_USE_PENDING parameter statistics to TRUE.
若要保持统计信息不被覆盖,则必须利用DBMS_STATS包将统计信息锁住。

【DB笔试面试118】在Oracle中,An index called ORD_CUSTNAME()

An index called ORD_CUSTNAME_IX has been created on the CUSTNAME column in the ORDERS table using the following co

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值