程序员人生 网站导航

oracle的面向对象与面向集合

栏目:数据库应用时间:2015-02-26 21:29:36

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

1、oracle的面向对象

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

为何说oracle中有很多的面向对象的思惟呢?举1个例子来讲明1下,我觉得最能体现出来这1点要算是游标了,固然还有包(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)也是1个具有很强的面向对象的家伙儿,比如最常使用的dbms_output.put_line()等等1些内置的函数,很有面向对象中类和方法的赶脚,只是oracle不这么叫罢了。面向对象是1种思惟模式,或许oracle在不断的更新进程中也鉴戒了1些这方面的内容,方便开发者更加快速更加舒服的使用也说不定。

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

2、oracle的面向集合

SQL是面向集合的,在oracle集合这篇博客中自己也写了1些东西,此处侧重写1些自己在这方面的1些见解。

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

oracle10g以后采取的是基于开消的优化器(CBO),通过统计出来的1些数据来运行众多履行计划中的1种,固然这1种其实不1定是最高效和稳定的。

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


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


------分隔线----------------------------
------分隔线----------------------------

最新技术推荐