当前位置:墨水屋 >

职场人生 >综合指导 >

Oracle数据库的面试题目及答案

Oracle数据库的面试题目及答案

基础题目:

Oracle数据库的面试题目及答案

1. 比较truncate和 命令

解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要 rollback segment .

而Delete是DML操作, 需要rollback segment 且花费较长时间.

【相同点

truncate和不带where子句的, 以及drop都会删除表内的数据

不同点:

1. truncate和 只删除数据不删除表的结构(定义)

drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,

但是变为invalid状态.

2.语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.

truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.

3.语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动

显然drop语句将表所占用的空间全部释放

truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage; truncate会将高水线复位(回到最开始).

4.速度,一般来说: drop>; truncate >;

5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及

使用上,想删除部分数据行用,注意带上where子句. 回滚段要足够大.

想删除表,当然用drop

想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用.

如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据

le中,需要在查询语句中把空值(NULL)输出为0,如何处理?

答案:nvl(字段,0).

nvl( ) 函数

从两个表达式返回一个非 null 值。

语法

NVL(eExpression1, eExpression2)

参数

eExpression1, eExpression2

如果 eExpression1 的计算结果为 null 值,则 NVL( ) 返回 eExpression2。如果 eExpression1 的计算结果不是 null 值,

则返回 eExpression1。eExpression1 和 eExpression2 可以是任意一种数据类型。如果 eExpression1 与 eExpression2

的结果皆为 null 值,则 NVL( ) 返回 .。

返回值类型

字符型、日期型、日期时间型、数值型、货币型、逻辑型或 null 值

说明

在不支持 null 值或 null 值无关紧要的`情况下,可以使用 NVL( ) 来移去计算或操作中的 null 值。

select nvl(,空得) as name from student a join school b on =

注意:两个参数得类型要匹配

le中char和varchar2数据类型有什么区别?有数据”test”分别存放到10)和varchar2(10)类型的字段中,

其存储长度及类型有何区别?

答案:

区别: 1)的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“test",对于CHAR (10),

  • 文章版权属于文章作者所有,转载请注明 https://www.moshuiwu.com/zhzdjy/km6dx6.html