第一篇:oracle学习入门-- 简单详细 -- java培训心得
本文档主要是站在开发者的角度学习Oracle(某些概念不尽全、精确,重在理解和操纵它,而DBA的学习将更深入,全面)
20131
51.俗称的数据库(如安装好的整个oracle)其实是由两大部分组成1.1.存放数据的位置--DB(数据库)
1.2.管理数据库的工具--DBMS(数据库管理系统)
2.开发与数据库设计中某些概念的映射
2.1.Java编程中的类(class)就对应数据库中的表(table)(提取类,设计表)
2.2.表的列(column)就是类中的属性field
2.3.一条记录(record)就是一个实例化后的对象(instance)
2.4.类与类的关系(relationship)也就是表与表的关系
3.学习与oracle数据库打交道(利用sql:structrued query language)
3.1、sql的分类:
1.data definition language ex:create /drop /alter
2.data manipulation language ex:insert /delete /update
3.data control languageex:grant/ revoke
4.data query languageex:select
5.transaction control language ex:commit/ rollback/ savepoint
4.连接数据库
cmd :连接命令:sqlplus username/password@sid
退出:exit;
sqlplus是一个可执行文件,是oracle提供的命令行客户端工具
desc查看表结构(看看表里面有哪些列,列的类型,能否为空等信息)(description)descemp;--职员信息表
descdept;--部门信息表
descsalgrade;--薪水等级表
5.数据类型
--基本上有三种
1.数字类型--number(长度)
比如:1.218 用number(3)--整数表示
2.number(6,1):共6位,小数点1位--实数表示
2.字符型--varchar2(长度)char2(长度)
var是变长的意思--存入多长的数据就开辟多长的空间,但不能超过指定长度(varchar2)
3.日期date
4.注意:
数据库的表中字段不填就是null
java中,null表示引用类型的变量不指向任何对象
表的主键非空 not null并且唯一unique
6.操作
DQL data query language contains three type
1.选择 selection 2.投影 projection 3.连接 join
6.1 选择:select * from emp;--“*” 表示所有列
6.2 投影:select sal,ename,empno from emp;--只查询了三个列的信息
selection:查找的若干技巧
1.别名技巧:selectename as name from emp;
select sal as “Salary” from emp;--规定大小写,包含空格
as--可以不写
2./ 执行上一条
3.空值和任何值做数学运算还是空,没奖金的人也显示不出月总收入
nvl(,)函数解决这个问题
nvl(comm,0)--Java语言表示:if(comm==null)return 0;else return comm;
4.select ename||'work as '||job from emp;--连接,合并多列的内容于一列展示
5.联合selection与projection,想看部门号有哪些?--使用distinct关键字
select distinct deptno from emp;--两个步骤 1.取出所有行,只显示deptno,重复太多2.看成只有一列的新表,剔除重复 简言之:1.出新表2.去重复
注意:只有两行完完全全的一样,才能舍弃一个
6.结果排序:
select distinct deptno,job from emp order by deptno,job;
--先按deptno排序,在按job排序(根据首字母)
第二篇:Oracle的初学者入门心得
Oracle的初学者入门心得
Oracle的体系太庞大了,对于初学者来说,难免会有些无从下手的感觉,什么都想学,结果什么都学不好,所以把学习经验共享一下,希望让刚刚入门的人对Oracle有一个总体的认识,少走一些弯路。
一、定位
Oracle分两大块,一块是开发,一块是管理。开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Develop工具做form。有点类似于程序员,需要有较强的逻辑思维和创造能力,个人觉得会比较辛苦,是青春饭;管理则需要对Oracle数据库的原理有深刻的认识,有全局操纵的能力和紧密的思维,责任较大,因为一个小的失误就会down掉整个数据库,相对前者来说,后者更看重经验。
因为数据库管理的责任重大,很少公司愿意请一个刚刚接触Oracle的人去管理数据库。对于刚刚毕业的年轻人来说,可以先选择做开发,有一定经验后转型,去做数据库的管理。当然,这个还是要看人个的实际情况来定。
二、学习方法
我的方法很简单,就是:看书、思考、写笔记、做实验、再思考、再写笔记。
看完理论的东西,自己静下心来想想,多问自己几个为什么,然后把所学和所想的知识点做个笔记;在想不通或有疑问的时候,就做做实验,想想怎么会这样,同样的,把实验的结果记下来。思考和做实验是为了深入的了解这个知识点。而做笔记的过程,也是理清自己思路的过程。
学习的过程是使一个问题由模糊到清晰,再由清晰到模糊的过程。而每次的改变都代表着你又学到了一个新的知识点。
学习的过程也是从点到线,从线到网,从网到面的过程。当点变成线的时候,你会有总豁然开朗的感觉。当网到面的时候,你就是高手了。
很多网友,特别是初学的人,一碰到问题就拿到论坛上来问,在问前,你有没有查过书,自己有没有研究过,有没有搜索一下论坛?这就叫思维惰性。由别人来回答你的问题,会让你在短时间内不费劲地弄懂这个知识点,然而通过自己的努力去研究它,不但会更深入的了解这个知识点,更重要的是在研究的过程会提高你解决问题和分析问题的能力。总的来说,没有钻研的学习态度,不管学什么东西,都不会成功的。
当然,初学的人很多时候是因为遇到问题时,无从下手,也不知道去哪里找资料,才会到论坛上提问题的。但我认为,在提问的时候,是不是可以问别人是如何分析这个问题?从哪里可以找到相关的资料?而不是这个问题的答案是什么?授人以鱼不如授人以渔。下面我讲下我处理问题的过程
首先要知道Oracle的官方网站: 这里有Oracle的各种版本的数据库、应用工具和权威的官方文档。其次,还要知道http://metalink.oracle.com/这里是买了Oracle服务或是oracle的合作伙伴才可以进去的,里面有很多权威的解决方案和补丁。然后就是一些著名网站:asktom.oracle.com。这里有很多经验之谈。遇到问题了。如果是概念上的问题,第一时间可以找tahiti.oracle.com,这里会给你最详细的解释。如果在运行的过程中出了什么错误。可以去metalink看看。如果是想知道事务的处理的经验之谈。可以去asktom。当然。这里只是相对而言。
三、Oracle的体系
Oracle的体系很庞大,要学习它,首先要了解Oracle的框架。在这里,简要的讲一下Oracle的架构,让初学者对Oracle有一个整体的认识。
1、物理结构(由控制文件、数据文件、重做日志文件、参数文件、归档文件、密码文件组成)
控制文件:包含维护和验证数据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个数据库至少需要一个控制文件.数据文件:存储数据的文件.重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复。一个数据库至少需要两个重做日志文件.参数文件:定义Oracle例程的特性,例如它包含调整SGA中一些内存结构大小的参数.归档文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。
密码文件:认证哪些用户有权限启动和关闭Oracle例程.2、逻辑结构(表空间、段、区、块)
表空间:是数据库中的基本逻辑结构,一系列数据文件的集合。
段:是对象在数据库中占用的空间.区:是为数据一次性预留的一个较大的存储空间.块:ORACLE最基本的存储单位,在建立数据库的时候指定.3、内存分配(SGA和PGA)
SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。
PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反PGA 是只被一个进程使用的区域,PGA 在创建进程时分配在终止进程时回收.4、后台进程(数据写进程、日志写进程、系统监控、进程监控、检查点进程、归档进程、服务进程、用户进程)
数据写进程:负责将更改的数据从数据库缓冲区高速缓存写入数据文件
日志写进程:将重做日志缓冲区中的更改写入在线重做日志文件
系统监控:检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复进程监控:负责在一个Oracle 进程失败时清理资源
检查点进程:负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。
归档进程:在每次日志切换时把已满的日志组进行备份或归档
服务进程:用户进程服务。
用户进程:在客户端,负责将用户的SQL语句传递给服务进程,并从服务器段拿回查询数据。
5、Oracle例程:Oracle例程由SGA内存结构和用于管理数据库的后台进程组成。例程一次只能打开和使用一个数据库。
6、SCN(System ChangeNumber):系统改变号,一个由系统内部维护的序列号。当系统需要更新的时候自动增加,他是系统中维持数据的一致性和顺序恢复的重要标志。
四、深入学习
管理:可以考OCP证书,对Oracle先有一个系统的学习,然后看Oracle Concepts、Oracle online document,对oracle的原理会有更深入的了解,同时可以开始进行一些专题的研究如:RMAN、RAS、STATSPACT、DATAGUARD、TUNING、BACKUP&RECOVER等等。开发:对于想做Oracle开发的,在了解完Oracle基本的体系结构之后,可以重点关注PL/SQL及Oracle的开发工具这一部分。PL/SQL主要是包括怎么写SQL语句,怎么使用Oracle本身的函数,怎么写存储过程、存储函数、触发器等。Oracle的开发工具主要就是Oracle自己的Developer Suite(Oracle Forms Developer and Reports Developer这些),学会如何熟练使用这些工具。
一、数据字典的用途
数据字典是各类数据描述的集合数据字典是进行详细的数据收集和数据分析所获得的主要结果
数据字典在数据库设计中占有很重要的地位
二、数据字典的内容
数据字典的内容:数据项;数据结构;数据流;数据存储;处理过程。数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构。数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。
1.数据项
数据项是不可再分的数据单位
对数据项的描述
数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系}
取值范围、与其他数据项的逻辑关系定义了数据的完整性约束条件
2.数据结构
数据结构反映了数据之间的组合关系。
一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。
对数据结构的描述
数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}
3.数据流数据流是数据结构在系统内传输的路径。对数据流的描述数据流描述={数据流名,说明,数据流来源,数据流去向,组成:{数据结构},平均流量,高峰期流量}
其中,数据流来源是说明该数据流来自哪个过程;数据流去向是说明该数据流将到哪
个过程去;平均流量是指在单位时间(每天、每周、每月等)里的传输次数;高峰期
流量则是指在高峰时期的数据流量。4.数据存储数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。对数据存储的描述
数据存储描述={数据存储名,说明,编号,流入的数据流,流出的数据流,组成:{数据结构},数据量,存取方式}
其中,流入的数据流:指出数据来源;流出的数据流:指出数据去向;数据量:每次存取多少数据,每天(或每小时、每周等)存取几次等信息;存取方法:批处理 /联机处理;检索 / 更新;顺序检索 / 随机检索。
5.处理过程
处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典中只需要描述处理过程的说明性信息
处理过程说明性信息的描述
处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}
其中,简要说明:主要说明该处理过程的功能及处理要求;功能:该处理过程用来做什么;处理要求:处理频度要求(如单位时间里处理多 少事务,多少数据量);响应时间要求等;处理要求是后面物理设计的输入及性能评价的标准。
第三篇:oracle培训心得
Oracle培训心得
2010年x月x日至x月x日,我有幸参加了工业和信息化部软件与集成电路促进中心主办的“ORACLE数据库高级实战培训班”学习交流。首先感谢学校领导给予了我这次学习机会。通过短暂的几天培训,我不仅对Oracle知识有了部分的了解,也接受了很多最新的信息。
在这次培训中,上课的老师有非常丰富DBA经验,他结合他自身的DBA工作经历,从Oracle体系结构与网络配置、访问控制、事务处理与日志、闪回特性、数据库的备份与恢复和数据库性能监测与调整优化等几个方面对Oracle进行了讲解。对课程讲解十分的详细。通过案例示范以及演示,指导我们一步步操作。
Oracle主要以操作命令行为主,在学习的过程中,对老师的每一步操作都做好了记录。课堂上按照老师的要求一步步操作,课后按记录的操作步骤和命令反复多次的练习。以此到达了对Oracle反复学习,熟悉掌握老师所传授的知识。
短短5天的高强度集中学习,我通过“xxxx”考试,取得了“xxxx”的认证。但是我知道依靠这几天的培训对Oracle学习是不行的,还必须在实践中不断地努力,提升自身的专业技术能力。只有在不断的实践练习,才能够深刻了解它的原理和方法。在以后的工作中,我仍会继续学习各种关于Oracle数据库的知识、持之以恒,在今后的工作中不断实践、总结、深入学习,全面掌握Oracle知识。
第四篇:Java培训心得
Java培训心得
通过这次培训让我获得不同的收获,感受颇多,受益匪浅。让我从一个对Java一知半解。在这里,首先,我要感谢尚学堂为我提供了这么一个良好的学习环境,其次,要感谢我的授课老师,他们不辞辛苦,努力传授这方面的知识。
下面是我的感想:
此次只学习了短短的五个月。虽说时间很短,但其中的每一天都使我收获很大、受益匪浅,它不但极大地加深了我对一些理论知识的理解,不仅使我在理论上对Java有了全新的认识,而且加深了对团队合作重要性的了解,更学到了很多做人的道理,对我来说受益非浅。
古文说:“师者,受业传道,解惑者也。”在这里老师们幽默风趣,知识点由浅入深,循序渐进,让我们更快掌握知识点,而且还带我们参与软件开发项目,理论结合实践,让我们在在实践中成长。这种浸入式的java培训教学我觉得很好,实践出真知,只有在实践中才能真正学到东西,发现问题,才能更好提升自己。同样的,从这句话中明白学习中自己应该做的是什么。要对于java学习来说:明确学习的目的,要学习的java既所谓的“业”,学习java的思想既所谓的“道”,java学习当中遇到的困难就是“惑”了。学习java要明确自己的学习总的方向和各个阶段的学习目标。
在这次实训中我得到了许多收获,我第一次体会到Java工程师的工作是什么样子的,也发现了很多不曾注意到的细节,我对作为一名Java工程师注意的事项应该从小事做起、从基本做起。相信这对我接下来学习专业知识会起到很有效的帮助,在今后的日子里,我会严格自我,向Java工程师靠近。
总的来说,这次培训效果不错,对自己有一定的提升,这完全不同与学校的学习,因为它更加贴近工作,针对以后工作的内容作了很多实例的练习与工具的使用,为我们更快的加入工作提供的很好的前提,感觉虽然辛苦,但很充实。我想这就是Java工程师的工作。这次学习即将结束了,我也体会到Java工程师成功地完成一个任务的那种兴奋。
最后,再次感谢尚学堂和授课的几位老师和不授课的各位老师辛勤的工作,我们的开心来自你们的热心与关心。祝你们工作顺利。
第五篇:学习JAVA心得
学习JAVA心得(2007-07-10 17:44:52)
经常看到有人问怎么学JAVA,无数的问题其实都已经是讨论很多编了,我学习JAVA5年,真正觉得有感觉是2003的时候,这么长时间以来有一些想法,写出来大家共同探讨:
1.为什么要学JAVA?
首要的原因当然是为了生活,找份好工作,现在放眼望去,知名公司只会要求两种语言-c/c++,当然包括后来的NET,和JAVA。其他一些公司可能会要其他的语言,但最终的结果是你会回到这两类上。前者的入门学习过程是比较痛苦的,你要学好需要一定的努力,但是他有一个好处,相对JAVA来说比较集中,不会出现JAVA里面这么多差异。java的学习过程开始比较容易入手,更容易学习。当然现在C#也可以。java还有一个优势就是在移动设备的开发,所有的java应用版本不同,但是语法一致。java的跨平台特性使得学习他让我们可以在不同的场合下使用。
2.怎么学习java
开始的两年我学JAVA就是拿书看,练习书上的例子,但是一直没有好的效果。后来因为项目需要开始正式使用JAVA开发,我发现以前练习的东西都忘光了,所以不得不在拿起书看。也就是基本上做了无用功了。现在想来因为大部分是抄来的,不怎么动脑子,所以不清楚为什么要这样。所以我强烈建议你学习的时候给自己设定一个假想的项目目标,做一个东西出来,网页也好,application也好,这样你才会快速地学习。
对java有了一定地感觉以后,你在去看他的DOCUMENT,看他的源码,我建议你从低版本的JAVA源码看起,因为他类少,看起来容易懂。然后你就会知道自己以前编码的东西那些是很幼稚的,是可以用一两句就能搞定的。
3.如何解决问题
学习的过程中不可避免的遇到问题,这些问题有的只是一个符号错了,一个括号少了,这类的问题在他的文档,或者一般的网站上就能够找到,尤其是初学者的问题,不会是很难的问题,在你之前已经无数人问过了,不要害怕提问,但是这个问题最好是你找不到答案的时候去提。有的时候人们觉得你这个问题到处都有,是你个人太懒不去找的原因而没有解决,这样不愿意回答。
等你走出了这个阶段,这个时候在有问题可能就是比较难一些的,这个时候在一般的网站上应该是难以找到结果的,我建议你英文够好的话直接上国外的网站,包括JAVA自己的网站。如果一般呢,可以到IBM的中文网站上去,这些地方有很多一系列问题的解决方法,那上面提供的例子不管是书写格式还是正确性都是比较好的,为你养成良好的习惯有很大的帮助。
4.其他UML等的学习
数据结构要不要学,UML要不要学,这些问题我觉得应人而异,你满足于做一般的程序员,完全可以不学,现在商业软件用到的都是成熟的技术,所有你遇到的问题,除非bug,无法解决的,在网上都能找到现成的代码,完全可以支持你完成工作。
但是如果你把编程当作一种乐趣的话,还是要学习的,用UML语言之后,你会发现编码的速度会更快,因为在这个过程中你理清了思路,通过使用工具,你可以要编码的模块分到最细,完成这部分工作以后,没一个模块的代码写起来会顺手很多,因为逻辑明确。数据结构对你写一些小的算法有帮助。而且通过比较高层次来观察整个系统,你对程序的把握会越
来越有信心。
编程是一种乐趣,只有你觉得他有乐趣的时候你才会用更多的热情去学习,现在java的书很多,我觉得国内一般人写的不要看,还是原版的或者原版翻译的比较好