当前位置:  数据库>oracle

Oracle的面向对象与面向集合

    来源: 互联网  发布时间:2017-06-13

    本文导语: 这一篇算是对近期自己学习的一个心得总结 一、Oracle的面向对象 SQL是面向集合的这个大家都知道,但是不可否认现在的oracle中有很多地方都体现着面向对象的思维。(这也算是各大语言殊途同归的一个征兆吧) 为什么说Oracle中...

这一篇算是对近期自己学习的一个心得总结

一、Oracle的面向对象

SQL是面向集合的这个大家都知道,但是不可否认现在的oracle中有很多地方都体现着面向对象的思维。(这也算是各大语言殊途同归的一个征兆吧)

为什么说Oracle中有很多的面向对象的思维呢?举一个例子来说明一下,我觉得最能体现出来这一点要算是游标了,当然还有包(package)

begin
  declare
    cursor students
    is
        select sid,name,age,hobby from my_test;
    student students%rowtype;
  begin
    for student in students loop
      dbms_output.put_line('学号:'||student.sid||'学生姓名:'||student.name||';');
    end loop;
  end;
end; 


--运行结果
学号:76学生姓名:joy;
学号:77学生姓名:joy;
学号:78学生姓名:joy;
学号:79学生姓名:joy;
学号:80学生姓名:joy;
学号:81学生姓名:joy;
学号:82学生姓名:joy;
学号:83学生姓名:joy;
学号:84学生姓名:joy;
学号:85学生姓名:joy;
学号:86学生姓名:joy;
学号:87学生姓名:joy;
学号:88学生姓名:joy;
学号:89学生姓名:joy;
……

其中的for循环有没有很有C#中foreach的赶脚呢?

student.sid没有有对象的赶脚呢?

另外包(package)也是一个具有很强的面向对象的家伙儿,比如最常使用的dbms_output.put_line()等等一些内置的函数,很有面向对象中类和方法的赶脚,只是Oracle不这么叫罢了。面向对象是一种思维模式,也许Oracle在不断的更新过程中也借鉴了一些这方面的内容,方便开发者更加快速更加舒服的使用也说不定。

接下来在谈谈Oracle的面向集合

二、Oracle的面向集合

SQL是面向集合的,在Oracle集合这篇文章()中自己也写了一些东西,此处着重写一些自己在这方面的一些见解。

关系型数据库是按照一定的关系把业务数据按照一定的相同性整合在一起,SQL语句是为了更好的处理这些数据而存在的,所以想要提升SQL的效率,很多时候就需要知道Oracle到底是怎么工作的,他在运行一段SQL语句时,是按照什么样的顺序来实现自己对于数据的处理的,这就牵扯到了解释计划和执行计划。

Oracle10g以后采用的是基于开销的优化器(CBO),通过统计出来的一些数据来运行众多执行计划中的一种,当然这一种并不一定是最高效和稳定的。

用集合的思想来进行编程,为的就是尽可能的减少对数据块的读取,因为一般情况下在I/O方面花费的效率还是很可观的,另外使用面向集合的方法也可以使SQL看起来更加的简洁明了,优雅动人。不过这些需要一个过程。

最后借用别人的一句话,做一个虎头虎脑的结尾:谁都能写出计算机认识的代码,但是只有有思想的程序员才能写出人人都能看懂的程序代码。

:http://www.linuxidc.com/Linux/2015-01/1118.htm


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle exp 导出用户对象
  • oracle查看会话锁定的所有对象代码分享
  • 测试添加Oracle中Blob数据类型对象
  • Oracle中关数据库对象的统计分析
  • Oracle使用PL/SQL操作COM对象
  • 浅析Oracle对象和数据的导入导出
  • Oracle PL/SQL编程有关的数据库对象
  • Oracle中重新编译无效的存储过程, 或函数、触发器等对象
  • 大家帮帮忙解决oracle大对象的问题吧。来者有分。
  • ORACLE 常用的SQL语法和数据对象
  • Oracle 12c发布简单介绍及官方下载地址
  • NOSQL iis7站长之家
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE数据库常用字段数据类型介绍
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • Oracle 12c的九大最新技术特性介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,