资源描述:
《Oracle数据库的面试题目及答案》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Oracle数据库的面试题目及答案 基础题目: 1.比较truncate和命令 解答:两者都可以用来删除表中所有的记录区别在于:truncate是DDL操作它移动HWK不需要rollbacksegment. 而Delete是DML操作,需要rollbacksegment且花费较长时间. 【相同点 truncate和不带where子句的,以及drop都会删除表内的数据 不同点: 1.truncate和只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(
2、constrain),触发器(trigger),索引(index);依赖于该表的存储过程/函数将保留, 但是变为invalid状态. 2.语句是dml,这个操作会放到rollbacksegement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发. truncate,drop是ddl,操作立即生效,原数据不放到rollbacksegment中,不能回滚.操作不触发trigger. 3.语句不影响表所占用的extent,高水线(highwatermark)保持原位置不动 显然
3、drop语句将表所占用的空间全部释放 truncate语句缺省情况下见空间释放到minextents个extent,除非使用reusestorage;truncate会将高水线复位(回到最开始). 4.速度,一般来说:drop>;truncate>; 5.安全性:小心使用drop和truncate,尤其没有备份的时候.否则哭都来不及 使用上,想删除部分数据行用,注意带上where子句.回滚段要足够大. 想删除表,当然用drop 想保留表而将所有数据删除.如果和事务无关,用truncate即
4、可.如果和事务有关,或者想触发trigger,还是用. 如果是整理表内部的碎片,可以用truncate跟上reusestroage,再重新导入/插入数据 】 2.Oracle中需要在查询语句中把空值(NULL)输出为0如何处理? 答案:nvl(字段0). nvl()函数 从两个表达式返回一个非null值 语法 NVL(eExpression1,eExpression2) 参数 eExpression1,eExpression2 如果eExpression1的计
5、算结果为null值则NVL()返回eExpression2如果eExpression1的计算结果不是null值 则返回eExpression1eExpression1和eExpression2可以是任意一种数据类型如果eExpression1与eExpression2 的结果皆为null值则NVL()返回.NULL. 返回值类型 字符型、日期型、日期时间型、数值型、货币型、逻辑型或null值 说明 在不支持null值或null值无关紧要的情况下可以使用NVL()来移去计算或操作中的null
6、值 selectnvl(a.name,空得)asnamefromstudentajoinschoolbona.ID=b.ID 注意:两个参数得类型要匹配 3.Oracle中char和varchar2数据类型有什么区别?有数据”test”分别存放到10)和varchar2(10)类型的字段中 其存储长度及类型有何区别? 答案: 区别:1).CHAR的长度是固定的而VARCHAR2的长度是可以变化的比如存储字符串“test对于CHAR(10)