说说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看起来更加的简洁明了,优雅动人。不过这些需要一个过程
最后借用别人的一句话,做一个虎头虎脑的结尾:谁都能写出计算机认识的代码,但是只有有思想的程序员才能写出人人都能看懂的程序代码
说说oracle中的面向对象与面向集合的更多相关文章
- python中的面向对象和面向过程
一.面向对象和面向过程 一.什么是面向过程 核心是过程二字:面向过程是一种流水线的工作流程,是先做什么在做什么 二.什么是面向对象 核心 是对象二字:是一种编程思想,上帝思维,一切皆对象,编程中负责调 ...
- 2018/2/14 设计模式学习笔记(一) 自己实现ArrayList,LinkedList和Iterator,以及在此过程中对于面向对象,面向接口,还有抽象类的一些思考感悟
因为本人目前为止学习编程不过七个月,所以后面的感悟对于一些大神来说可能嗤之以鼻,但对于一些刚刚入门的萌新来说在理解面向对象的思想上,以及抽象类和接口应该怎么设计等方面应该还是会有所帮助的 首先我们定义 ...
- 面向对象和面向过程,python中的类class,python中程序的入口——main方法,
1.程序入口,让main显现出来: print(__name__)#__name___是模块中的隐藏字段,当前模块运行的函数名 if __name__ == __main__ __main__() # ...
- 彻底理解Oracle中的集合操作与复合查询
--Oracle中的复合查询 复合查询:包含集合运算(操作)的查询 常见的集合操作有: union: 两个查询的并集(无重复行.按第一个查询的第一列升序排序) union all:两个查询的并集(有重 ...
- Oracle中的集合运算
前言:在实际项目中对多表进行集合运算使用非常广泛,以下是对集合操作的部分总结. 一,建表,插入测试数据 create table a( numbers integer ) create table b ...
- 浅谈Objective—C中的面向对象特性
Objective-C世界中的面向对象程序设计 面向对象称程序设计可能是现在最常用的程序设计模式.如何开发实际的程序是存在两个派系的-- 面向对象语言--在过去的几十年中,很多的面向对象语言被发明出来 ...
- mysql 面向集合查询
面向集合的思想 SQL是为查询和管理关系型数据库中的数据而专门设计的一种标准语言.我们通常认为的关系型是说的数据库中表与表的关系,这个理解是有问题的,这里的关系其实是数学术语上的关系.为什么这么说?因 ...
- JavaSE——面向对象与面向过程、类与对象、(属性、方法、构造器)等
一:面向对象与面向过程 二者都是一种思想,面向对象是相对于面向过程而言的. 面向过程: 1.面向过程思想强调的是过程(动作). 2.在面向过程的开发中,其实就是面向着具体的每一个步骤和过程,把每一个步 ...
- C#学习笔记——面向对象、面向组件以及类型基础
C#学习笔记——面向对象.面向组件以及类型基础 目录 一 面向对象与面向组件 二 基元类型与 new 操作 三 值类型与引用类型 四 类型转换 五 相等性与同一性 六 对象哈希码 一 面向对象与面向组 ...
随机推荐
- css+js+html基础知识总结
css+js+html基础知识总结 一.CSS相关 1.css的盒子模型:IE盒子模型.标准W3C盒子模型: 2.CSS优先级机制: 选择器的优先权:!important>style(内联样式) ...
- http协议状态码对照表
1**:请求收到,继续处理 2**:操作成功收到,分析.接受 3**:完成此请求必须进一步处理 4**:请求包含一个错误语法或不能完成 5**:服务器执行一个完全有效请求失败 100——客户必须继续发 ...
- 【WCF 1】WCF框架宏观了解
导读:使用WCF框架爱开发项目也有很长一段时间了,最开始的时候,是理解的不深,所以不写博客进行总结.后来是项目赶,发现需要总结的有很多,一直没有把WCF排上日程,尤其是最近研究EF这一块,更是研究了一 ...
- nagios plugin 开发
https://nagios-plugins.org/doc/guidelines.html#DEVREQUIREMENTS https://blog.centreon.com/good-practi ...
- 【MySQL】DNS与MHA/ZABBIX构建的高可用MySQL
MySQL实例组与DNS和MHA/ZABBIX架构示意图: DNS搭建:http://www.cnblogs.com/jiangxu67/p/4801230.html MHA分析:http://www ...
- css定义表格样式
table.gridtable { font-family: verdana,arial,sans-serif; font-size:11px; color:#333333; border-width ...
- WP8——页面跳转方法
1.页面传值: this.NavigationService.Navigate(new Uri("/SecondPage.xaml?CustomerId=1234&Product ...
- windows installer 出错问题解决
在卸载程序的额时候,如果出现windows installer出错,可以通过一个Windows Installer CleanUp Utility, 有了Windows Installer Clean ...
- oracle线程数更改
查看Oracle最大进程数: SQL> select count(*) from v$session #连接数,查看更多oracle数据库的疑问, 可点击cuug官网.http://www.cu ...
- 如何判断raid1中哪块硬盘损坏?
服务器 2块硬盘做的raid1,如果其中有一块坏掉,如何能判断是哪块坏掉? 方法①.通过硬盘硬件指示灯进行观察,一般黄灯代表硬盘存在问题,显示红灯则代表硬盘损坏.方法②.通过开机进入阵列配置进行查看, ...