说说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看起来更加的简洁明了,优雅动人。不过这些需要一个过程

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

时间: 2024-10-29 04:09:32

说说oracle中的面向对象与面向集合的相关文章

oracle的面向对象与面向集合

这一篇算是对近期自己学习的一个心得总结 一.oracle的面向对象 SQL是面向集合的这个大家都知道,但是不可否认现在的oracle中有很多地方都体现着面向对象的思维.(这也算是各大语言殊途同归的一个征兆吧) 为什么说oracle中有很多的面向对象的思维呢?举一个例子来说明一下,我觉得最能体现出来这一点要算是游标了,当然还有包(package) begin declare cursor students is select sid,name,age,hobby from my_test; stu

面向对象和面向过程,python中的类class,python中程序的入口——main方法,

1.程序入口,让main显现出来: print(__name__)#__name___是模块中的隐藏字段,当前模块运行的函数名 if __name__ == __main__ __main__() #定义程序入口:Python中main函数默认是隐藏的,main函数在当前运行的模块下,定义程序入口就是让main函数显 #现出来 def __main__(): ....... 2.面向对象和面向过程: 面向对象:使用对象完成任务,不需要在意过程: 3.什么是类:一个类型,定义class来表示一个类

Day5-1 面向对象和面向过程

摘要: 类的定义 类的增删改查 面向对象和面向过程的区别: 1.面向过程就像是工厂的流水线,按部就班的有序的工作. 优点:把复杂的问题简单化 缺点:可扩展性差.一个步骤改动,其他的步骤几乎都要跟着改动. 适用:功能一旦实现之后就很少需要改变的场景. 2.面向对象: 2-1 什么是对象? 对象的具有一些特征和方法的集合.比如孙悟空是一个对象,他的特征是 毛脸雷公嘴,金箍棒,金箍圈.他的方法(技能)七十二变,火眼金睛. 优点:可扩展性强 缺点:编程复杂度高. 适用:互联网应用,企业应用,游戏. 类:

oracle中的基础sql

1.SQL SQL(Structured Query Language) 语言是目前主流的关系型数据库上执行数据操作.数据检索以及数据库维护所需要的标准语言,是用户与数据库之间进行交流的接口,许多关系型数据库管理系统都支持SQL语言,但不同的数据库管理系统之间的SQL语言不能完全通用,Oracle数据库使用的SQL语言是Procedural Language/SQL(简称PL/SQL). 1.1SQL语言分类 通常将SQL语言分为以下4类. (1)数据定义语言(Data Definition L

关于javascript中的面向对象

经常会听到对象和面向对象这个词.关于面向对象的一些理解,可能会比较肤浅,平时在书也看到一些相习的内容,我把整理的一些笔记分享给大家.首先,从JS的语言特征说起,js 是什么语言?首先,是基于对象的语言,如果没有对象这个概念,那么什么事情都做不了:再者,是一种脚本语言,是写出来就可以执行解析的一种语言,区别于编译语言( c, c++, java, c# ):最后,就是继承性,什么是继承性呢?通俗的说来就是把别人东西,拿过来做为自己的,为自己所用,如特征,属性,方法等,继承性:(for(var ke

Oracle中REGEXP_SUBSTR及其它支持正则表达式的内置函数小结

Oracle中REGEXP_SUBSTR函数的使用说明: 题目如下:在oracle中,使用一条语句实现将'17,20,23'拆分成'17','20','23'的集合. REGEXP_SUBSTR函数格式如下:function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)__srcstr :需要进行正则处理的字符串__pattern :进行匹配的正则表达式,匹配的值将返回,返回策略由__occurrence决定__po

面向对象与面向过程

一.面向对象与面向过程的区别: 二者都是一种思想,面向对象是相对于面向过程而言的.面向过程,强调的是功能行为.面向对象,将功能封装进对象,强调具备了功能的对象.面向对象更加强调运用人类在日常的思维逻辑中采用的思想方法与原则. 二.面向对象的三大特征: ①封装(Encapsulation)②继承(Inheritance)③多态(Polymorphism) 面向对象简称OOP( Object Oriented Programming) 面向过程(procedure oriented programm

转: oracle中schema指的是什么?

看来有的人还是对schema的真正含义不太理解,现在我再次整理了一下,希望对大家有所帮助. 我们先来看一下他们的定义:A schema is a collection of database objects (used by a user.). Schema objects are the logical structures that directly refer to the database's data.A user is a name defined in the database t

面向对象与面向过程区别

面向对象是以事物为中心的编程思想,把构建问题事务分解成各个对象,建立对象的目的是为了描述某个事物在整个解决问题的步骤中的行为: 面向过程是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用时依次调用就可以了: 区别: 面向对象程序设计,往往是从问题的一部分着手,一点一点地构建出整个程序.面向对象设计以数据为中心,类作为表现数据的工具,成为划分程序的基本单位:面向对象是一个抽象度更高的编程方法,它主要是集中于解决问题,目标是使模块的抽象度更高,可复用性更好,采取空间换时间的策略方式