还剩3页未读,继续阅读
文本内容:
Oracle数据库的面试题目及答案基础题目
1.比较truncate和命令解答两者都可以用来删除表中所有的记录区别在于truncate是DDL操作,它移动HWK,不需要rollbacksegment.而Delete是DML操作需要rollbacksegment且花费较长时间.【相同点truncate和不带where子句的以及drop都会删除表内的数据不同点:
1.truncate和只删除数据不删除表的结构定义drop语句将删除表的结构被依赖的约束constrain触发器trigger索引index;依赖于该表的存储过程/函数将保留但是变为invalid状态.
2.语句是dml这个操作会放到rollbacksegement中事务提交之后才生效;如果有相应的trigger执行的时候将被触发.truncatedrop是ddl操作立即生效原数据不放到rollbacksegment中不能回滚.操作不触发trigger.
3.语句不影响表所占用的extent高水线highwatermark保持原位置不动显然drop语句将表所占用的空间全部释放truncate语句缺省情况下见空间释放到minextents个extent除非使用reusestorage;truncate会将高水线复位回到最开始.
4.速度一般来说:drop;truncate;
5.安全性:小心使用drop和truncate尤其没有备份的时候.否则哭都来不及使用上想删除部分数据行用注意带上where子句.回滚段要足够大.想删除表当然用drop想保留表而将所有数据删除.如果和事务无关用truncate即可.如果和事务有关或者想触发trigger还是用.如果是表内部的碎片可以用truncate跟上reusestroage再重新导入/插入数据
2.Oracle中,需要在查询语句中把空值NULL输出为0,如何处理答案nvl字段,
0.nvl函数从两个表达式返回一个非null值语法NVLeExpression1eExpression2参数eExpression1eExpression2如果eExpression
1...。