oracle 面试题

1. Oracle是怎样分页的? 
    Oracle中使用rownum来进行分页, 这个是效率最好的分页方法,hibernate也是使用rownum来进行oralce分页的 

    select * from  ( select rownum r,a from tabName where rownum <= 20 )  where r > 10 

 2. 如何使用Oracle的游标? 
    1).  oracle中的游标分为显示游标和隐式游标 
    2).  显示游标是用cursor...is命令定义的游标,它可以对查询语句(select)返回的多条记录进行处理;隐式游标是在执行插入 (insert)、删除(delete)、          修改(update)和返回单条记录的查询(select)语句时由PL/SQL自动定义的。 

    3). 显式游标的操作:打开游标、操作游标、关闭游标;PL/SQL隐式地打开SQL游标,并在它内部处理SQL语句,然后关闭它

3. 比较truncate和delete命令 ? 
    1). Truncate 和delete都可以将数据实体删掉,truncate 的操作并不记录到 rollback日志,所以操作速度较快,但同时这个数据不能恢复 
    2). Delete操作不腾出表空间的空间 
    3). Truncate 不能对视图等进行删除 

    4). Truncate是数据定义语言(DDL),而delete是数据操纵语言(DML)

4. 说说oracle中的经常使用到得函数 
    Length 长度、 lower 小写、upper 大写, to_date 转化日期, to_char转化字符 

    Ltrim 去左边空格、 rtrim去右边空格,substr取字串,add_month增加或者减掉月份、to_number转变为数字 

5. 解释data block , extent 和 segment的区别? 
    data block 数据块,是oracle最小的逻辑单位,通常oracle从磁盘读写的就是块 
    extent 区,是由若干个相邻的block组成 
    segment段,是有一组区组成 

    tablespace表空间,数据库中数据逻辑存储的地方,一个tablespace可以包含多个数据文件 

6. Oracle分区是怎样优化数据库的? 
    Oracle的分区可以分为:列表分区、范围分区、散列分区、复合分区。 
    1).  增强可用性:如果表的一个分区由于系统故障而不能使用,表的其余好的分区仍可以使用; 
    2).  减少关闭时间:如果系统故障只影响表的一部份分区,那么只有这部份分区需要修复,可能比整个大表修复花的时间更少; 
    3).  维护轻松:如果需要得建表,独产管理每个公区比管理单个大表要轻松得多; 
    4).  均衡I/O:可以把表的不同分区分配到不同的磁盘来平衡I/O改善性能; 
    5).  改善性能:对大表的查询、增加、修改等操作可以分解到表的不同分区来并行执行,可使运行速度更快 

    6).  分区对用户透明,最终用户感觉不到分区的存在。

7. Oracle中function和procedure的区别? 
    1). 可以理解函数是存储过程的一种 
    2). 函数可以没有参数,但是一定需要一个返回值,存储过程可以没有参数,不需要返回值 
    3). 函数return返回值没有返回参数模式,存储过程通过out参数返回值, 如果需要返回多个参数则建议使用存储过程 
    4). 在sql数据操纵语句中只能调用函数而不能调用存储过程

  • 0
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值