学习Oracle数据库的心得体会

学习Oracle数据库的心得体会,第1张

学习数据库对我来说是一直都计划学的 没接触的时候总是觉得它比较深奥或是不可接近的电脑知识 尽管自己对电脑非常感兴趣 其实还是有些心理上的陌生感 学习电脑就和我们平时的其它科目学习一样感觉它有永无止境的知识 在这从初接触电脑时连个电脑的键盘都不敢动到现在连硬盘都也修理 其中的过程是多么长啊 数据库是我在高中时候听过 到了大学渐渐了解了些 但就其原理性的内容还不知道 也就是根本就不清楚什么是数据库 只是知道一个所谓的中国字典里的名词 我认识它是从我接触网页制作开始的 初用FrontPage做网页也就是弄几个框图 没什么东西但还觉得不错 后来听朋友说这是最简单最普通的东东 朋友告诉我真真的网页起码也用到数据库这些东西了 有什么前台的后台的 听我的都晕头转向了 感觉自己是一个长不大的菜鸟了 之后我就去查找相关资料发现在数据库有很多种 这才对它有所了解     大一 大二的时候想学可不知道怎么学 从什么地方学起 当时也没注意选课本上有这类的课程 到了大三正式的课程也轻松些了 仔细观摩了选修课发现有数据库 有数据库原理和Oracle数据库 当时感觉Oracle数据库既然是单独一门课程一定会讲的比较细 也能学到真正实用的内容 选上了这门课以后发现和我想的基本是一样的 老师对学生也比较和蔼可亲 对我们要求也不是很紧 让每个人都觉得轻轻松松就能把这门课程学完 没有多么紧张的作业 也没有太苛刻的要求     当老师在最后说这个课程结束了 回顾一下以前老师给我们讲过的东西 真的有很多是我们应该去注意的 学习完Oracle数据库后感觉Oracle可分两大块 一块是开发 一块是管理 开发主要是写写存储过程 触发器什么的 还有就是用Oracle的Develop工具做form 有点类似于程序员 当然我可不是什么程序员 有几个程序员朋友他们是我的偶像 开发还需要有较强的逻辑思维和创造能力 自己没有真正做过 但感觉应该会比较辛苦 是青春饭 管理则需要对Oracle数据库的原理有深刻的认识 有全局 *** 纵的能力和紧密的思维 责任较大 因为一个小的失误就会down掉整个数据库 相对前者来说 后者更看重经验 这些东西都是从老师哪里和朋友的讨论中得到的心得 也希望其他朋友能多多向老师和朋友请教 如果是个人单独靠自己来完成一个完美的数据库我觉得比较困难 现在基本上都是团队类型的 而且他们的效率高开发的周期也快 在烟台的 NET俱乐部认识几个比较历害的人 他们的团队精神我比较佩服 像我这样一个大学生和他们说起来太菜了 由于数据库管理的责任重大 很少公司愿意请一个刚刚接触Oracle的人去管理数据库 对于我们这些初出茅庐的新手来说 个人认为可以先选择做开发 有一定经验后转型 去做数据库的管理 当然 这个还是要看人个的实际情况来定 其实在烟台大学里学生中有做的好的也是有 只不过通常象这些兄弟们我觉得很少能发现在 因为我只知道一个 在烟雨楼台的BBS版块里有个程序版块 这位版主以前就是学校网络中心的牛人 他曾告诉我学习的方法就是 看书 思考 写笔记 做实验 再思考 再写笔记 我觉得说的很对 对于新手来说就要这样 不断的去努力奋斗 最后一定能得到自己想要的成果     对于学习Oracle数据库从网络上找资料我认为是比较好的 现在的网络又这么的发达应该去充分利用 我知道Oracle的官方网站 这里有Oracle的各种版本的数据库 应用工具和权威的官方文档 虽然我是个新手 但是常到哪些相关的数据库论坛或是网站觉得每次的收获都不小 网络对我来说可是个重要的东西 除了Oracle数据库对于其它的一些电脑知识都从网络里学习了不少 我常用的一个搜索网站就是大家都熟悉的百度了()     以前没接触过它 现在认识了它才知道Oracle的体系很庞大 要学习它 首先要了解Oracle的框架 它有物理结构(由控制文件 数据文件 重做日志文件 参数文件 归档文件 密码文件组成) 逻辑结构(表空间 段 区 块) 内存分配(SGA和PGA)算机的实际内存中得以分配 如果实际内存不够再往虚拟内存中写 后台进程(数据写进程 日志写进程 系统监控 进程监控 检查点进程 归档进程 服务进程 用户进程) SCN(System Change Number) 这些东西感觉都比较专业 我对它们也就是个知道 想要真真去认识我还得努力去做 虽然懂得还不是很多 起码会了基本的软件 *** 作 老师说我们用的都是客户端 服务端看不到 也不知道服务端是什么样的 只知道客户端就挺多东西的 没有真正的去学习利用是很难掌握的      Oracle数据库的学习使我对数据库的有了新的进步 以后再看到也就不至于什么也不懂 其实那么多数据库我觉得学好一门就行 只是他们的语言可能不大一样 学好一门后就可去认识其它的 这样应该有事半功倍的效果 就像我学习C语言 当时不能说是学习的棒 但不算差 所以我对以后的语言感觉都不是很困难 了解了VB C++还有网页中用的Html语言 asp语言都能看懂 起码可以对别人的东西进行了一下修改 因此 我感谢Oracle数据库老师给了我有用的知识 以便我在以后学习或认识更多的内容能有新的方法和思维 也能更加有效和快速的去消化吸收新的东西 希望在今后中 Oracle能给我更多帮助 让我在我熟悉的VB中运用上去 我以前的一个目标是要为学校的选课做一个选课助手来帮助大学 就用我的VB 不过因为种种原因一直没有完成 也包括我对数据库的不了解 因为学了Oracle以后知道第一项内容是通过SQL查询后得到的 如果去把它们联系起来还不是真正明白 不过我相信我的目标能在学习Oracle后得到进展 lishixinzhi/Article/program/Oracle/201311/18934

数据查询 是数据库 *** 作中最主要的功能之一有时候数据库查询性能的好坏 直接关系到数据库的运行效率 关系到数据库的选型 下面笔者不谈大道理 只是对其中对一些平时大家容易忽略的查询小技巧做一些总结 或许大家可能正在为此犯愁呢?

第一个技巧 利用连接符连接多个字段

如在员工基本信息表中 有员工姓名 员工职位 出身日期等等 如果现在视图中这三个字段显示在同一个字段中 并且中间有分割符 如我现在想显示的结果为 经理Victor出身于 年 月 日 这该如何处理呢?其实 这是比较简单的 我们可以在Select查询语句中 利用连接符把这些字段连接起来

如可以这么写查询语句

SELECT员工职位 || ||员工姓名|| 出身于 ||出身日期 as 员工出身信息 FROM 员工基本信息表

通过这条语句就可以实现如上的需求 也就是说 我们在平时查询中 可以利用||连接符把一些相关的字段连接起来 这在报表视图中非常的有用 如笔者以前在设计图书馆管理系统的时候 在书的基本信息处有图书的出版社 出版序列号等等内容 但是 有时会在打印报表的时候 需要把这些字段合并成一个字段打印 为此 就需要利用这个连接符把这些字段连接起来 而且 利用连接符还可以在字段中间加入一些说明性的文字 以方便大家阅读 如上面我在员工职位与员工姓名之间加入了空格并且在员工姓名与出身日期之间加入了出身于几个注释性的文字 这些功能看起来比较小 但是却可以大大的提高内容的可读性 这也是我们在数据库设计过程中需要关注的一个内容

总之 令后采用连接符 可以提高我们报表的可读性于灵活性

第二个技巧 取消重复的行

如在人事管理系统中 有员工基本信息基本表 在这张表中 可能会有部门 职位 员工姓名 身份z件号码等字段 若查询这些内容 可能不会有重复的行 但是 我若想知道 在公司内部设置了哪些部门与职位的时候 并且这些部门与职位配置了相关人员 此时 又该如何查询呢?

若我现在直接查询部门表 其可以知道系统中具体设置了哪些部门与职位 但是 很有可能这些部门或者职位由于人事变动的关系 现在已经没有人了 所以 这里查询出来的是所有的部门与职位信息 而不能够保证这个部门或者职位一定有职员存在 也就是说 这不能够满足于我们上面的要求

若我现在直接从员工信息表中查询 虽然可以保证所查询出来的部门与职位信息 一定有员工信息的存在 但是 此时查询出来的部门与职位信息会有重复的行 如采购部门分工合作 可能会有采购采购小组长 此时 在查询出来的部门与职位的信息中 就会有三条重复的记录

所以 以上两种处理方式 都不能够百分之百的满足企业用户的需求 此时 我们其实可以利用一个DISTINCT函数 来消除其中查询出来的重复行

如我们可以利用SELECT DISTINCT 部门信息 职位信息 FROM 员工基本信息表 通过这条加了DISTINCT约束的查询语句 不但可以查询出所有有员工的职位与部门信息 而且 会把重复的记录过滤掉 从而提高可阅读性

所以 在数据库设计过程中 特别是在查询语句的使用中 这个函数特别有用

第三个技巧 勤用WHERE语句

我们都知道 数据库查询效率高不高 是我们评价数据库设计好坏的一个重要标准 毋庸置疑 在数据库查询中勤用Where条件语句 是提高数据库查询性能的一个很重要的手段之一 特别是在设计到比较大的表中查询符合条件的记录过程中 利用WHERE条件语句加以限制 可以大幅度的提高查询的响应速度

如在图书馆管理系统中 现在有人想查询 注册会计师 辅导用书的时候 虽然不在书的类别或者名称中输入 注册会计师 先查询出全部的纪录 然后再一条条的看是否有相关的书籍信息 也是可行的 但是 这么处理的话 一方面系统响应的速度会非常的慢 因为里面记录很多 另一方面 查询的结果看起来也会非常的头疼

其实 我们只需要在查询中加入一些查询的参数 利用Where条件语句加以限制 则即可以提高数据库响应的速度 也可以找出最符合用户需求的数据

另外 我也接触过一些在Oracle数据库上设计的平台型管理软件 他们可以自定义相关的报表 在报表设计中 只要用户在前台设计平台中 选中 大表查询 的话 则这个平台会在生成报表的时候 自动应用Where条件语句 以提高前台系统从数据库查询数据的效率

所以 笔者认为在Oracle数据库系统设计中 要勤于使用Where语句 利用Where语句来提高数据库查询的效率

第四个技巧 灵活使用COUNT函数

在查询处理的时候 COUNT函数可以说是我们应用的比较多的函数之一 如我们有时候需要统计员工的人数 统计图书的种类数的时候 都需要使用到这个函数 不过 这个函数很多人可能会用 但是到灵活应用的地步 还是有一点差距

下面笔者就COUNT函数的一些应用技巧谈谈自己的心得

一是要灵活放置COUNT函数的位置 因为利用COUNT函数统计记录数的时候 是会考虑空行的记录的 如在数据表中一般有序列字段与其它的有意义字段两类 有时候可能序列字段中有内容而其它字段中没有内容 则在利用COUNT函数统计记录数量的时候 会把这个空记录也考虑进去 很明显 则就会发生统计的错误 所以 这个COUNT函数该放在哪个位置上 还是比较讲究的 一般的话 笔者试建议不要放在序列号字段上 而要放在一些关键的实体字段中 如统计员工人数的时候 则就可以放在员工姓名或者编号上等等

二是灵活跟其它函数搭配使用 如在上面的例子中 笔者谈到有时候用户需要知道现在有员工编制的部门与职位有哪一些 我们可以利用DISTINCT函数来找出具体的部门 但是 我现在只想知道有编制的部门与职位具体有多少 此时 我们也可以利用COUNT 与DISTINCT函数结合应用 找出我们所需要的数据 在COUNT函数中 可以指定ALL与DISTINCT选项 默认的情况下 是ALL选项 表示统计所有的行 其中也包括重复的行 而DISTINCT就表示只统计不重复的行 可见 COUNT函数跟其它函数搭配使用的话 可以简化我们的查询语句 提高查询效率

第五个技巧 只查询时必须的字段

有时候 用户不同的查询需求都要用到同一张表 如在员工信息表中包含了很多内容 有时候用户想要知道正式员工有多少管理层员工有多少生产线员工又有哪些或者想知道合同即将到期的员工有哪些 为此 就遇到一个问题 因为这些内容基本上都是在同一张表中 那是在同一个视图中实现 而是根据需求不同 设计不同的视图呢?

若单从技术上考虑 两这都是可以实现的 不会有多大的难度 但是 若是从数据库性能上考虑在 则还是采用不同的视图来实现不同的需求为好

一方面 若从安全方面讲 则可以根据不同的视图来控制相关的访问权限 可见 把视图细化 在权限控制上则会更加的灵活

lishixinzhi/Article/program/Oracle/201311/17049

oracle 优势很多,大部分银行保险电信大部分是用oracle处理的

优势主要 有

1、处理速度快,非常快

2、安全级别高。支持快闪以及完美的恢复,即使硬件坏了 也可以恢复到故障发前的1s

3、几台数据库做负载数据库,可以做到30s以内故障转移,

4、网格控制,以及 数据仓库方面 也非常强大

对了免费 以及 开源的 言论 都是错误的。。。oracle产品及服务都是付费的,而且价格不菲。比其他数据库要贵,物有所值。oracle不是开源的。不过可以在redhat 或者其他开源 *** 作系统上安装。

mysql在sun没被oracle收购是开源的,免费的,之后oracle公司打算 把mysql打造成不开源,收费模式的。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6701239.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-27
下一篇2023-03-27

发表评论

登录后才能评论

评论列表(0条)

    保存