Oracle函数面试题(五)

2014-11-24 15:53:29 · 作者: · 浏览: 9
Oracle非归档模式下当重做日志文件写满以后若是有LGWR进行重做日志信息的写入操作时,以前保存在重做日志文件中的重做日志信息就会被覆盖掉。
70、Oracle索引分为哪几类,说出唯一索引和位图索引的概念。
Oracle索引有B树索引,位图索引,函数索引,簇索引等。
唯一索引也是B树索引的一种,它要求被索引的字段值不可以重复。在创建的时候使用B树算法创建。
位图索引并不是采用象唯一索引那样存储(索引字段值,记录ROWID)来创建索引段的,而是为每一个唯一的字段值创建一个位图,位图中使用位元来对应一个记录的ROWID。位元到ROWID是通过映射的到的。
71、ORACLE的基本数据类型有哪些
Char()存储定长字符,定义的时候可以不为他指定长度但是如若往里插入值则会出错;varchar2()存储变长字符定义的时候必须指定长度,date存储时间日期;Number()数字类型,包括整型,浮点型等;clob()大容量字符串;blob()大二进制对象
72、SQL中,执行四舍五入的是哪个函数
Round(value,保留的小数位数)与只对应的还有一个特别相似的函数trunc(value,保留的小数位数)它的作用是根据要保留的小数位数来截取原数。
73、oracle数据库表存放到磁盘什么地方 数据文件
ORACLE数据库的表存放在物理文件中的数据文件中。
74、当执行insert语句并提交后,这些提交的数据存储到什么地方
存储到了数据库的数据文件中。
75、Exits和in在ORALCE数据库中那个执行效率更高
EXITS执行效率要比使用IN要快。
76、ORACLE自己提供的函数,想知道具体位置,如何操作
77、数据库的几种物理文件
1)数据文件 2)控制文件 3)日志文件
78、控制文件都含有哪些信息
控制文件存放有实例信息(实例名称创建时间等),数据文件和日志文件信息,还有系统运行时记录的系统变更码(SCN),检查点信息和归档的当前状态信息等。数据库在加载数据库的时候首先要读取控制文件获得和数据库有关的物理结构信息之后才能够正确加载数据文件和日志文件并打开数据库。
79、Decode函数的用法
DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,…,else),表示如果value等于if1时,DECODE函数的结果返回then1,…,如果不等于任何一个if值,则返回else。初看一下,DECODE 只能做等于测试,但刚才也看到了,我们通过一些函数或计算替代value,是可以使DECODE函数具备大于、小于或等于功能。
2.如何用decode进行大于小于的比较
利用sign()函数和DECODE和在一起用
select decode(sign(变量1-变量2),-1,变量1,变量2) from dual;
decode(条件,值1,翻译值1,值2,翻译值2,…值n,翻译值n,缺省值)
该函数的含义如下:
IF 条件=值1 THEN
RETURN(翻译值1)
ELSIF 条件=值2 THEN
RETURN(翻译值2)
……
ELSIF 条件=值n THEN
RETURN(翻译值n)
ELSE
RETURN(缺省值)
END IF
使用方法:
1、比较大小
select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; –取较小值
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1
例如:
变量1=10,变量2=20
则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的。
2、表、视图结构转化
现有一个商品销售表sale,表结构为:
month char(6) –月份
sell number(10,2) –月销售金额
现有数据为:
200001 1000
200002 1100
200003 1200
200004 1300
200005 1400
200006 1500
200007 1600
200101 1100
200202 1200
200301 1300
想要转化为以下结构的数据:
year char(4) –年份
month1 number(10,2) –1月销售金额
month2 number(10,2) –2月销售金额
month3 number(10,2) –3月销售金额
month4 number(10,2) –4月销售金额
month5 number(10,2) –5月销售金额
month6 number(10,2) –6月销售金额
month7 number(10,2) –7月销售金额
month8 number(10,2) –8月销售金额
month9 number(10,2) –9月销售金额
month10 number(10,2) –10月销售金额
month11 number(10,2) –11月销售金额
month12 number(10,2) –12月销售金额
结构转化的SQL语句为:
create or replace view
v_sale(year,month1,month2,month3,month4,month5,month6,month7,month8,month9,month10,month11,month12)
as
select
substrb(month,1,4),
sum(decode(substrb(month,5,2),’01′,sell,0)),
sum(decode(substrb(month,5,2),’02′,sell,0)),
sum(decode(substrb(month,5,2),’03′,sell,0)),
sum(decode(substrb(month,5,2),’04′,sell,0)),
sum(decode(substrb(month,5,2),’05′,sell,0)),
sum(decode(substrb(month,5,2),’06′,sell,0)),
sum(decode(substrb(month,5,2),’07′,sell,0)),
sum(decode(substrb(month,5,2),’08′,sell,0)),
sum(decode(substrb(month,5,2),’09′,sell,0)),
sum(decode(substrb(month,5,2),’10′,sell,0)),
sum(decode(substrb(month,5,2),’11′,sell,0)),
sum(decode(substrb(month,5,2),’12′,sell,0))
from sale
group by substr