oracle学习心得体会.docx
《oracle学习心得体会.docx》由会员分享,可在线阅读,更多相关《oracle学习心得体会.docx(14页珍藏版)》请在冰豆网上搜索。
oracle学习心得体会
oracle学习心得
一、sqlserver的理解
sqlserver服务器就像一栋大楼,大楼里的机房就像服务器的数据库,机房里的电脑如同数据库里的表
1、登录用户可以登录服务器——可以进大楼
2、登录用户成为数据库用户才能进指定的数据库——进入大楼的人给了某个机房的钥匙
才能进入机房
3、登录用户有权限使用表——进入机房的人有电脑的密码才能使用电脑
二、oracle的理解
oracle服务器(全局数据库)就像一个商场,商场的每一家公司是表空间,公司的业务是表
1、数据库由多个表空间组成——商场里有多家公司组成
2、表空间由段组成——公司要有自己的经营业务,可以只有一个业务,就是一个表空
间中只有一个段,可以有多个业务,就是一个表空间有多个段
3、段由区组成——单个业务的细分类别。
例如有家公司经营三个业务,卖书,卖家电,
卖衣服,则每个业务就是一个段。
而每个业务又有细分,比如卖书的话要进行分类了。
计算机区,人文区,小说区等,每一区都要放上书架存放书籍,则书架就是oracle块,存放数据的
三、数据库,表空间,用户(指定默认表空间),表统统由管理员管理
四、在oem中管理数据库的步骤
1、创建
1)存储——表空间——创建表空间(tomspace)(类似于在sql中创建数据库,
通常可以省略,使用默认表空间为users,,临时表空间为temp)
2)首先展开安全性——创建新用户(tom,指定表空间)(类似于在sql中指定
数据库用户)
3)创建表——指定方案(用户)和表空间(列名不要带<>)
4)设置约束
5)输入信息:
方案——用户名——表——右击——查看/编辑目录…
2、修改
1)方案——用户名——表
2)修改表结构,添加约束
3、删除:
右击表——移去
五、注意事项
1、刚创建的用户不会出现在方案中,只有创建了一个表指定方案和表空间,该用户的
方案名就会出现在方案中,此时就可以方便为该方案创建其他表
1)新创建的用户能在sqlplus中登录,为什么不能在企业管理器中登录呢?
解答:
需要授予selectanydirectory权限才能正常登录企业管理器,但没有其他权限
2)可以对创建的用户在安全性中赋予角色权限,如dba,则该用户就是数据库管理
员
3)sys用户主要用来维护系统信息和管理实例,只能以sysoper或sysdba角
色登录
4)安装oracle的用户自动为ora-dba权限,自动是sys用户,所以在登录时不需要
用户名和密码,只要选中以sysdba登录。
其他用户登录计算机系统,在使用oracle
时就是正常登录状态了。
2、向表中添加日期数据:
时间格式为dd-mm-yyyy怎么修改呢?
如何插入时间数
据
1)先在sqlplus中selectsysdatefromdual;就知道日期的格式
2)altersessionsetnls_date_format='yyyy-mm-dd';修改当前输入格式
3)oracle中的默认格式是:
‘dd-mm-yyyy’;修改语句:
altersessionset
nls_date_format='yyyy-mm-dd';修改后输入和显示都为指定格式,缺点是只对当前会话起作用
假如你是要永久修改的话,改注册表:
regedit->hkey_local_machine->oracle->homeo->
nls_date_format值yyyy-mm-dd(经验证不管用)
默认日期:
50年之前是当前世纪,50年之后是之前世纪,31-12月-49代表2014年01-1月-50代表1950年
4)由于在表编辑器中to_date函数的格式是dd-mon-yyyy,输入时为如下格式13-6
月-1983(代码编辑时一样,世纪可以省略,代表当前世纪)
5)to_char通常用于查询语句;to_date通常用于增删改语句
6)两个’代表一个’
六、代码编辑器
1、sqlplus
2、sqlplusworksheet
3、isqlplus
设置列宽:
setlinesize50;
七、与sql2014中的查询分析器不同,sqlplusworksheet执行所有语句,不单单执行选中语句
八、编辑——清除;可以清除查询结果
九、查看环境变量:
select*fromv$nls_parameters;
十、示例用户
1)scott/tigernormal登录
2)hr:
需要解锁和重设密码(alteruserhraccountunlock;)
十一、查看和更改oraclehttp占用端口号,d:
ora9apacheapacheconf下,httpd.conf和httpd.conf.default中将80修改,然后重新启动http服务加个字符串
六、工具的使用
1、netmanager:
配置服务主机名和监听主机名
2、netconfigurationassistant:
配置监听程序,本地服务名配置等
/*****************************************************************************/oracle小知识点
1、数据操作时,字段区分大小写
2、oracle两种认证模式:
(1)操作系统认证
(2)文件口令认证。
初始化参数的文件目录为d:
oracle_programdatabase
3、sqlplus中使用helpindex查看帮助信息目录,
命令:
查看某个命令的详细用法
连接数据库后才能使用
5、当代码中使用函数时,函数中固定的关键字必须写正确,当放在字符串中的时候,编译没有错误,运行时才会出现错误,通常是sql递归错误
一、定位
oracle分两大块,一块是开发,一块是管理。
开发主要是写写存储过程、触发器什么的,还有就是用oracle的develop工具做form。
有点类似于程序员,需要有较强的逻辑思维和创造能力,个人觉得会比较辛苦,是青春饭j;管理则需要对oracle数据库的原理有深刻的认识,有全局操纵的能力和紧密的思维,责任较大,因为一个小的失误就会down掉整个数据库,相对前者来说,后者更看重经验。
因为数据库管理的责任重大,很少公司愿意请一个刚刚接触oracle的人去管理数据库。
对于刚刚毕业的年轻人来说,可以先选择做开发,有一定经验后转型,去做数据库的管理。
当然,这个还是要看人个的实际情况来定。
二、学习方法
我的方法很简单,就是:
看书、思考、写笔记、做实验、再思考、再写笔记
看完理论的东西,自己静下心来想想,多问自己几个为什么,然后把所学和所想的知识点做个笔记;在想不通或有疑问的时候,就做做实验,想想怎么会这样,同样的,把实验的结果记下来。
思考和做实验是为了深入的了解这个知识点。
而做笔记的过程,也是理清自己思路的过程。
学习的过程是使一个问题由模糊到清晰,再由清晰到模糊的过程。
而每次的改变都代表着你又学到了一个新的知识点。
学习的过程也是从点到线,从线到网,从网到面的过程。
当点变成线的时候,你会有总豁然开朗的感觉。
当网到面的时候,你就是高手了
很多网友,特别是初学的人,一碰到问题就拿到论坛上来问,在问前,你有没有查过书,自己有没有研究过,有没有搜索一下论坛?
这就叫思维惰性,没有钻研的学习态度,不管学什么东西,都不会成功的。
三、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(systemchangenumber):
系统改变号,一个由系统内部维护的序列号。
当系统需要更新的时候自动增加,他是系统中维持数据的一致性和顺序恢复的重要标志。
四、深入学习
管理:
可以考ocp证书,对oracle先有一个系统的学习,然后看oracleconcepts、oracleonlinedocument,对oracle的原理会有更深入的了解,同时可以开始进行一些专题的研究如:
rman、ras、statspact、dataguard、tuning、backup&recover等等。
开发:
对于想做oracle开发的,在了解完oracle基本的体系结构之后,可以重点关注pl/sql及oracle的开发工具这一部分。
pl/sql主要是包括怎么写sql语句,怎么使用oracle本身的函数,怎么写存储过程、存储函数、触发器等。
oracle的开发工具主要就是oracle自己的developersuite(oracleformsdeveloperandreportsdeveloper这些),学会如何熟练使用这些工具。
资料引用:
学习心得
——安装linux与oracle
一.安装linux
1)安装虚拟机
在windows下安装虚拟机软件,本次安装为vmware?
workstation7.0.0build-201439版本。
2)新建虚拟机1.打开vm软件,新建虚拟机;2.选择“标准(推荐)(t)”类型配置;3.选择“安装盘镜像文件(iso)(m)”,并选择redhat镜像文件。
4.下面执行默认操作,选择最大磁盘大小,本次选择20g(根据自己磁盘而定,推荐不要少于10g,因为还需要安装oracle);
5.完成-开始新建虚拟机
3)安装linux
开机,系统会显示详细的安装说明窗体,根据系统的提示一步一步进行即可,以下是必要的输入信息的提示:
1.在启动界面中选择“回车”进入安装画面;
2.显示产品信息,选择“next”继续;
3.选择“简体中文”(选择语言);
4.选择“u.s.english”(选择键盘);
5.选择用自动分区,本次选择第三个选项“保存所有的分区,使用现有的空闲空间”;
6.设置引导程序,按照缺省设置;
7.配置网卡,点“编辑”,设置ip地址等参数信息;
8.选择不启用防火墙,当所有软件都安装调试通过后,再开启防火墙,并配置端口的属性;
9.选择语言,默认为:
chinese(r.pofchina),同时将“englist(usa)”选中;
10.时区:
亚洲---上海,不要选择“utc”;
11.设置root用户的口令(本次设置为“abc123”);
12.选择需要的软件包,选择“定制安装”,根据需求,选择软件包,其中,系统默认的软件包不要取消掉;
13.安装完毕,以root用户登录。
1.打开telnet功能4)操作系统安装配置
用root登录cd/etc/xinetd.dvitelnet将“disable=yes”修改为“disable=no”.重启xinetd服务servicexinetdrestart
二.安装oracle
1)修改版本号
由于orcale10不支持rhel5所以需要修改/etc/redhat-release将redhatenterpriselinuxserverrelease5(tikanga)改为redhatenterpriselinuxserverrelease4(tikanga)
2)安装所需软件包先加载redhat镜像,进入光盘下server目录下:
cd/media/’rhel_5.1i386dvd’/server执行安装命令rpm–ivh(rpm包名)rpm包包括:
libxp-1.0.0-8.i386.rpm
openmotif22-2.2.3-18.i386.rpm
compat-db-4.2.52-5.1.i386.rpm
compat-gcc-34-3.4.6-4.i386.rpm(要先安装rpm-ivhglibc-devel-2.5-12.i386.rpm)compat-gcc-34-c++-3.4.6-4.i386.rpm
compat-libstdc++-33-3.2.3-61.i386.rpm
libaio-0.3.106-3.2.i386.rpm
3)修改内核参数增加下面的内容到文件/etc/sysctl.conf中
kernel.shmall=2014152
kernel.shmmax=2147483648
kernel.shmmni=4096
kernel.sem=25032014100128
fs.file-max=65536
net.ipv4.ip_local_port_range=102465000
net.core.rmem_default=1048576
net.core.rmem_max=1048576
net.core.wmem_default=262144
net.core.wmem_max=262144
不一定要全部复制,里面没有的再复制
运行下面的命令使得内核参数生效:
/sbin/sysctl–p
增加下面的内容到文件/etc/security/limits.conf中:
softnproc2014
hardnproc16384
softnofile1024
hardnofile65536
增加下面的内容到文件/etc/pam.d/login中:
sessionrequired/lib/security/pam_limits.so
sessionrequiredpam_limits.so
因为selinux对oracle有影响,所以把securelinux设成无效,编辑文件/etc/selinux/config:
selinux=disabled
4)创建oracle用户和组
#groupadddba
#useradd-d/home/oracle-gdbaoracle
#mkdir-p/home/oracle/oradata
#chown–roracle:
dba/home/oracle/oradata
#mkdir–p/home/oracle/product/10.2(创建oracle安装目录)
#chown–roracle:
dba/home/oracle/product/10.2
#chmod-r775/home/oracle/oradata
#passwdoracle
newpassword:
re-enternewpassword:
passwd:
passwordsuccessfullychangedfororacle
5)修改oracle用户环境变量:
(切换为oracle用户)在/home/oracle目录下,打开.bash_profile文件cd/home/oraclevi.bash_profile
添加以下内容:
unsetusername
exportlang='american_america.zhs16gbk'
exportoracle_base=/home/oracle
exportoracle_home=$oracle_base/product/10.2
exportoracle_sid=ordb1
exportnls_lang='american_america.zhs16gbk'
export
path=$oracle_home/bin:
/bin:
/sbin:
/usr/bin:
/usr/ccs/bin:
/usr/local/bin:
/usr/ucbexport
ld_library_path=$oracle_home/lib:
$oracle_home/network/lib:
$oracle_home/oracm/lib:
/usr/local/lib:
/usr/lib
export
classpath=$oracle_home/jre:
$oracle_home/jlib:
$oracle_home/rdbms/jlib:
$oracle_home/rdbms/jlib:
$oracle_home/network/jlib
exporttns_admin=$oracle_home/network/admin
exporttemp=/tmp
exporttmpdir=/tmp
umask022
让环境变量生效:
source.bash_profile
6)安装oracle使用root用户,在/home/oracle目录下解压oracle安装包unziporacledatabase10grelease210·2·0·1·0forlinuxx86.zip使用exportlang=c命令,切换为英文安装,避免乱码在/home/oracle/database目录下执行安装命令./runinstaller开始进入图形安装界面,过程不予赘述,注意几点:
安装路径要和环境变量oracle_home值保持一致不创建数据库,安装完毕再创建
在安装出现”1/home/oracle/product/10.2/root.sh”画面时,在另一个终端中以root用户运行相关脚本:
cd/home/oracle/product/10.2
./root.sh
脚本运行完后请返回原来的画面选择“ok”按钮
最后界面中记录好访问isql*plus的url地址以便后续使用
三.心得体会
本次安装redhatlinux和oracle,因为以前对li(请你关注)nux知识匮乏,在入手时较难,但通过各方面的学习,不光学习到安装方法,也对linux的应用有了初步的了解,包括linux的主要文件系统(ext3文件系统),磁盘结构,shell知识,常用命令的使用等。
同时,通过安装oracle,了解了liunx中rmp相关知识及应用。
本文档主要是站在开发者的角度学习oracle(某些概念不尽全、精确,重在理解和操纵它,而dba的学习将更深入,全面)
2014-8-15
1.俗称的数据库(如安装好的整个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:
structruedquerylanguage)
3.1、sql的分类:
1.datadefinitionlanguageex:
create/drop/alter
2.datamanipulationlanguageex:
insert/delete/update
3.datacontrollanguageex:
grant/revoke
4.dataquerylanguageex:
select
5.transactioncontrollanguageex:
commit/rollback/savepoint
4.连接数据库
cmd:
连接命令:
sqlplususername/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表示引用类型的变量不指向任何对象
表的主键非空notnull并且唯一unique
6.操作
dqldataquerylanguagecontainsthreetype
1.选择selection2.投影projection3.连接join
6.1选择:
select*fromemp;--"*"表示所有列
6.2投影:
selectsal,ename,empnofromemp;--只查询了三个列的信息
selection:
查找的若干技巧
1.别名技巧:
selectenameasnamefromemp;
selectsalas"salary"fromemp;--规定大小写,包含空格
as--可以不写
2./执行上一条
3.空值和任何值做数学运算还是空,没奖金的人也显示不出月总收入
nvl(,)函数解决这个问题
nvl(comm,0)--java语言表示:
if(comm==null)return0;elsereturncomm;
4.selectename||'workas'||jobfromemp;--连接,合并多列的内容于一列展示
5.联合selection与projection,想看部门号有哪些?
--使用distinct关键字
selectdistinctdeptnofromemp;--两个步骤1.取出所有行,只显示deptno,重复太多2.看成只有一列的新表,剔除重复简