oracle初学者入门教程,如何自学oracle数据库
oracle初学者入门教程,如何自学oracle数据库详细介绍
本文目录一览: Oracle数据库入门之函数类型
Oracle主要数据类型
概述 各种数据库所支持的数据类型大同小异 与标准SQL语言中的数据类型可能略有出入
类型 varchar 可以在声明字段时设置它的长度上限 而且使用它之后 就不必再考虑空格的存在
若插入的字符串的长度低于长度上限 系统就会自动将其缩减为字符串的真实长度
number(m n) 既可以用来表示整型 也可以表示浮点型 但m不可以超过 如果n为 或者省略n 就代表它是整数
date 用来存放日期和时间
blob 通常是在应用程序中使用到它 而不是在数据库中利用SQL指令直接使用
比如通过JDBC技术访问数据库 读写blob或clob类型的字段 即读写长的字符串信息等等
char 它是一种定长的字符类型 在Oracle数据库不区分字符和字符串 它们被统称为字符型或文本型
所谓定长的字符型是指 插入的字符串若没有达到约定的字段长度 系统就会在字符串尾部自动补空格
同样 读取时的字段长度永远是声明时的字段长度 而且在比较字符串内容的时候 也需要考虑到空格的过滤
nchar 它也是定长的字符串类型 它是SQL语言标准中规定的 通常采用Unicode编码来保存不同国家或不同语言的字符
varchar SQL标准在定义varchar时并没有保证能够向前和向后兼容 即有可能随着语言标准的修改而产生不兼容的问题
所以Oracle定义了同varchar型类似的varchar 型 就是为了在Oracle以后的版本中 都永远支持varchar 类型
Oracle这么做就是为了确保此类型向前后兼容 以达到能够在Oracle系列数据库中进行数据的导入和导出的目的
long 它和varchar 的差别在于 它不支持对字符串内容进行检索 即查询时不可以对它的内容进行条件查询
而varchar 和char nchar型等等都可以在查询的时候直接检索字符串的内容
补充 select * from v$nls_parameters;数据库的配置信息以数据表的形式存在 通常称其为关于数据的数据或数据字典
实际上它查询的是数据字典中的一个视图 其中NLS_CHARACTERSET对应的是当前的数据库字符集
缺省均为使用数据库字符集 教程中使用的是安装时默认的ZHS GBK字符集 即汉字占 个字节 英文占 个字节
而NLS_NCHAR_CHARACTERSET对应的是nchar或nvarchar 类型所采用的辅助字符集 即AL UTF 字符集
实际上AL UTF 是一种 位定长的Unicode编码的字符集 而数据库字符集以及这种国家字符集都可以修改
但数据库字符集修改后可能会面临很严重的后果 除非是数据库管理员 普通用户不必对这方面进行深究
数据库中的数据导入导出的时候 如果源数据库和目标数据库所采用的字符集不同 也很容易出问题
函数
概述 函数可以认为是能够完成相对独立的功能的一段代码的集合 Oracle函数相当于其它语言中的方法或过程
Oracle函数可以分为单行函数和多行函数两大类 Oracle函数都是有返回值的
所谓的单行函数是针对查询结果中的每一行都起作用 都会返回一个结果
多行函数也就是所谓分组函数 是针对一组查询的记录 或者说多行 返回一个结果
单行 操作数据项 接受参数并返回处理结果 对每一返回行均起作用 可修改数据类型 可嵌套使用
单行函数分为字符函数 数值函数 日期函数 转换函数 通用函数
多行 也称分组函数 即对一组数据进行运算 针对一组数据(多行记录)只能返回一个结果
多行函数包括avg() count() max() min() sum()等
比如select avg(sal) max(sal) min(sal) sum(sal) max(hiredate) min(hiredate) from emp;
续一 使用Oracle的系统函数中的单行函数可实现诸多功能 如对数据进行计算 控制数据的输出格式
设置和改变日期的显示格式 进行数据类型转换 使用NVL等函数处理空值 实现IF THEN ELSE多路分支逻辑等等
续二 转换函数不会改变表中数据的字段类型和值 它就相当于将数据复制了一份 所转换的是复制之后的数据
数据类型转换包括隐含转换和显式转换两种方式 建议使用显式的数据类型转换 确保SQL语句的可靠性
续三 通用函数适用于包括空值在内的任何类型数据 通常用来实现空值的处理 空值的过滤或设置缺省值等
通用函数包括nvl() nvl () nullif() coalesce() case表达式 decode()等
嵌套 单行函数可以嵌套使用 嵌套层次无限制 分组函数最多可嵌套两层 嵌套函数的执行顺序是由内到外
单行比如select empno lpad(initcap(trim(ename)) ) 姓名 job sal from emp;
多行比如select max(avg(sal)) from emp group by deptno; 其实这里再使用分组函数就没有意义了
说明 通常数据库层面提供的函数 只是进行数据的简单的处理 或者说是只能实现极为常规的功能
所以就不应该 或者说是不要指望在数据库查询的层面来实现特别复杂的业务逻辑
如果应用程序的逻辑跟数据库混在一起的话 会不利于代码的维护和更新
而且也不利于数据库的管理 包括数据移植 数据库导入导出等等
日期类型
概述 在计算机操作系统或者各种高级编程语言中 日期通常会被保存成一个长整数 通常记录的是毫秒
Oracle内部以数字格式存储日期和时间信息 世纪 年 月 日 小时 分钟 秒
缺省的日期格式是DD—MON—YY 可使用sysdata函数获取当前系统日期和时间
运算 日期型数据可以直接加或减一个数值 结果认为日期 约定的该数值代表的是相加减的天数
两个日期型数据可以相减 结果为二者相差多少天 二者不能 因为日期相加是没有意义的
NVL()函数
概述 它用于将空值null替换为指定的缺省值 适用于字符 数字 日期等类型数据
格式 NVL(exp exp ) 如果表达式exp 值为null 则返回exp 值 否则返回exp 值
举例 select empno ename sal m sal+nvl(m ) from emp;
select empno ename job nvl(job No job yet ) from emp;
NVL ()函数
概述 它用于实现条件表达式功能
格式 NVL (exp exp exp ) 如果表达式exp 值不为null 则返回exp 值 否则返回exp 值
举例 select empno ename sal m nvl (m sal+m sal) 总收入 from emp;
NULLIF()函数
概述 它用于数据等价性比较并根据比较结果返回null或其中一个被比较的数值 实际开发中应用并不是很多
格式 nullif(exp exp ) 如果表达式exp 与exp 的值相等 则返回null 否则返回exp 的值
举例 select name 原名 nullif(pen_name name) 化名 from author;
COALESCE()函数
概述 它用于实现数据“接合”功能
格式 coalesec(exp exp ) 依次考察各参数表达式 遇到非null值即停止并返回该值
若表达式均为null值 则返回null 通常最后一个表达式都是能确保不是空值的字段
举例 select empno ename sal m coalesec(sal+m sal ) 总收入 from emp;
CASE表达式
概述 它用于实现多路分支结构
格式 case exp when parison_exp then return_exp
[when parison_exp then return_exp
when parison_expn then return_expn
else else_exp]
end
举例 select empno ename sal
case deptno when then 财务部
when then 研发部
when then 销售部
else 未知部门
end 部门
from emp;
说明 CASE中的每一个表达式(如deptno 财务部等)都可以是复合而成的
这种对齐方式的书写是为了增加可读性 当然也可以把代码写在同一行上
其中case到end之间的整体就相当于普通查询中的一个字段 end后面的“部门”是别名
DEDODE()函数
概述 和case表达式类似 它也用于实现多路分支结构
格式 decode(col|expression search result
[ search result ]
[ default])
举例 select empno ename sal
decode(deptno 财务部
研发部
销售部
未知部门 )
部门
from emp;
COUNT()函数
格式 count(*)返回组中总记录数目
count(exp)返回表达式exp值非空的记录
count(distinct(exp))返回表达式exp值不重复的 非空的记录数目
举例 select count(*) from emp; 缺省的情况下 整个表就是一组
select count(m) from emp; 返回emp表中m字段不为空的记录(行)数目
select count(distinct(deptno)) from emp; 查找deptno值为非空且不重复的记录数目
分组函数与空值
概述 分组函数省略列中的空值 可使用NVL()函数强制分组函数处理空值
举例 select avg(m) from emp; 等价于sum(m)/count(m)
select sum(m) from emp; 计算表中非空的m值的总和
select avg(nvl(m )) from emp; 等价于avg(nvl(m ))/count(*)
GROUP BY子句
概述 它用于将表中数据分成若干小组
格式 select column group_function(column)
from table
[where condition]
[group by group_by_expression]
[order by column];
举例 select deptno avg(sal) from emp group by deptno;
说明 出现在SELECT列表中的字段 如果不是包含在组函数中 那么该字段必须同时在GROUP BY子句中出现
包含在GROPY BY子句中的字段则不必须出现在SELECT列表中 子句执行顺序是where→group by→order by缺省按升序排列
补充 select deptno job avg(sal) from emp group by deptno job order by deptno desc; 基于多个字段的分组
select deptno avg(sal) from emp; 非法
注意 如果没有GROUP BY子句 SELECT列表中不允许出现字段(单行函数)与分组函数混用的情况
WHERE中不允许使用分组函数 如select deptno avg(sal) from emp where avg(sal)> group by deptno; 非法
这跟子句执行的顺序有关 where子句最先执行 在执行where子句的时候还没有执行过group by子句
于是程序不知道这是在分组 也不曾计算过avg(sal)的组内平均工资 所以在where子句中不允许使用分组函数
由于还没有执行过group by子句 所以此时就不确定如何怎么分组以及分多少个组
所以where子句中只能进行初级过滤 此时可以使用HAVING子句实现对平均工资的过滤
HAVING子句
概述 它用于过滤分组
格式 select column group_function(column)
from table
[where condition]
[group by group_by_expression]
[having group_condition]
[order by column];
举例 select deptno job avg(sal)
from emp
where hiredate >= to_date( yyyy mm dd )
group by by deptno job
having avg(sal) >
lishixinzhi/Article/program/Oracle/201311/19087
Oracle入门教程:如何kill掉RMAN备份进程
题记:最近客户的一套订购数据库经常会因为数据及业务压力太大,在RMAN进行全备或是增备时,而此时业务有大量要处理时,系统资源 题记:最近客户的一套订购数据库经常会因为数据及业务压力太大,在RMAN进行全备或是增备时,,而此时业务有大量要处理时,系统资源就会被耗尽,会影响到业务的正常,所以常有时需要先终止掉RMAN备份,这里提供了我在处理过程中的方法,希望大家喜欢!本文的目的就是在紧急状态下,需要立即终止正在进行的RMAN备份进程。(1)查看RMAN分配的各个通道的进程号SQL> SELECT sid, spid, client_info FROM v$process p, v$session s WHERE p.addr = s.paddr AND client_info LIKE '%rman%'; SID SPID CLIENT_INFO---------- ------------------------ ------------------------- 525 26244 rman channel=t1 1023 26245 rman channel=t2 699 26246 rman channel=t3 (2)根据第(1)中得到的进程号,终止RMAN备份注:这里既要kill 掉RMAN备份脚本的PID, 也要kill 掉RMAN中分配的各个通道的PIDsubsdb1:~ # ps -ef | grep 26244Oracle 26244 26224 7 17:12 ? 00:01:49 oraclesubsdb (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))root 9877 9603 0 17:34 pts/11 00:00:00 grep 26244subsdb1:~ # kill -9 26244subsdb1:~ # ps -ef | grep 26245oracle 26245 26224 5 17:12 ? 00:01:13 oraclesubsdb (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))root 9968 9603 0 17:35 pts/11 00:00:00 grep 26245subsdb1:~ # kill -9 26245subsdb1:~ # ps -ef | grep 26246oracle 26246 26224 4 17:12 ? 00:01:03 oraclesubsdb (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))root 10009 9603 0 17:35 pts/11 00:00:00 grep 26246subsdb1:~ # kill -9 26246subsdb1:~ # ps -ef | grep rmanoracle 26224 25962 0 17:11 pts/3 00:00:03 rman target / nocatalogroot 10061 9603 0 17:35 pts/11 00:00:00 grep rmansubsdb1:~ # kill -9 26224subsdb1:~ # ps -ef | grep rmanroot 10102 9603 0 17:36 pts/11 00:00:00 grep rmansubsdb1:~ # ps -ef | grep 26246root 10213 9603 0 17:36 pts/11 00:00:00 grep 26246此时RMAN备份操作已经被终止。查看(1)中的SQL语句时,结果为空。说明:如果单单kill掉RMAN的进程号,那么RMAN备份并没有停止,而是要连channel进程也一起掉才可以!
如何自学oracle数据库
你想学oracle干嘛用,oracle数据库可是大型数据库,不说一般,就是中型企业也支付不起一年几千万的使用费。初学者可以先学mysql数据库。
mysql和oracle一样都支持sql语法,都是关系型数据库。不同的是存储过程不一样,权限管理不一样。mysql现在是中小型企业的主流。你可以考虑一下。
你可以想想一个oracle数据库工程师的要求,即使你达到了,企业也不敢用年轻人。所以先主要已mysql入手。
最好买一本适合初学者的书,买别的书估计初学者看不懂。再结合网上的教程,资料。
如何纯粹是为了好玩,那就随心所欲吧。首先学习什么是关系型数据库,关系型数据库的特点和数据是如何查询的这些都有助于你今后对数据库的理解。作为一个能写出高效的sql语句的程序员来说这个必须要理解。
然后学习sql语句,sql语句主要是对表的操作。查询,删除,修改,添加等操作。
然后再学习触发器,存储过程,视图,控制器。
学到这里就有一定的基础了,接下来可以选择学习方向,你可以深入学习数据库权限管理,你可以学习更多的数据库函数来写出高效的sql语句。
oracle安装教程
1、安装以win7 64位系统为例:将win64_11gR2_database_1of2win64_11gR2_database_2of2解压到同个文件夹下合并(可以直接左键框住右键点击一起解压),打开运行其中的setup开始安装。
2、稍后进入Oracle 11g安装界面,【配置安全更新】邮箱以及口令可以不写,点击下一步,出现提醒,直接点是即可。
3、【安装选项】直接选择默认创建和配置一个数据库(安装完Oracle后,系统会自动创建一个数据库实例)。
4、【系统类】个人用户直接选择默认的桌面类就可以了。
5、【典型安装】Oracle基目录,软件目录,和数据库文件目录,Oracle一般会自动帮你选择空间最大的盘和你解压文件的盘符,全部默认即可。管理口令需要输入(大写+小写+数字)的八位密码,也有网友指出此处可以随意设置简单好记的密码,无视软件提醒即可。
6、【先决条件检查】安装程序会检查软硬件系统是否满足此Oracle版本的最低要求,安装需要占用约2G的C盘空间,内存2G以上即可。如果还是通不过要求,选择全部忽略。
7、【概要】安装前的一些相关选择配置信息,点击完成。安装正在进行中,请耐心等待。
8、Oracle实例创建启动完成后,会自动创建安装一个实例数据库名称orcl123。安装完成,运行开始菜单>Oracle - OraDb11g_home1>Database Control - orcl123,以IE运行进入登录界面或打开ie直接输入https://localhost:1158/em即可 (此处如果出现证书错误的话,点击继续浏览此网站即可)。
9、登录界面,输入用户名SYS,口令为之前注册设置的管理密码,将连接身份改为SYSDBA,点击登录,成功之后你就可以管理你的数据库实例了。
求推荐一本Oracle学习教程
我推荐几本吧,既经典又好用的:
tom的,一个资深的Oracle DBA不可能不看tom,都有中文版,网上都可以下载:
《expert one on one》 无论如何必看的东西,编程,调优什么的。里面有些东西非常有用,比如外键必须建索引的原因、查询脚本等等。
《Oracle 10g 编程艺术》这个和优化很相关,必看,但可以慢慢看。
盖国强的:
《深入浅出Oracle》《循序渐进Oracle》,这两本书都需要有了一定基础再看才好。
其他的:
《Oracle 9i DBA手册》,我不清楚这书有没有出10g,11g的版本,我看的是9i的,相当基础,但随着工作深入也相当可查。
楼上说的三思笔记的确可看,大部分是入门级就可看懂,而且事后忘了也可查的。还行。
此外必须要做的是,适当的收集一些常用的脚本,或自己编写的脚本。比如查等待事件啊、表空间使用率啊。
其实操作系统的一些东西也是必须看的。必须要熟悉至少1种UNIX系统。建议可以看看AIX/HP UNIX/Linux之类的操作系统相关的书。linux的我推荐鸟哥的私房菜。AIX我没什么可推荐你的。因为光看书实在搞不定那个东西,必须要上机才行。
其他如果有兴趣可以看看有关备份恢复的书。data guard和RAC也应该适当的了解一下。
不过我还是那句话,没实践一切都等于零。所以光看书没用的。我见过一无是处的OCP,也见过无所不能的大专生。实践实践再实践,唯一的王道。
1、如果想走oracle管理的路,建议你买一本OCP的指南,里面包含了oracle数据库所有内容,你可以从中学习到很多,它里面包含每一个知识点的练习,也包含练习题,你可以边学边测试,看看自己的掌握程度;
2、不一定买很多的书,现在网络这么方便的,只要有一本全面的书籍就可以了,其它的知识点全部从网上学习;
查找一下中文版的ORACLE Concepts,这个是公认的最好的初学ORACLE的材料,
帮你查找了一下,百度里面就有,
http://wenku.baidu.com/view/3596fa3383c4bb4cf7ecd13c.html,
另外建议的话,就是多实践,别光看不动手,别的没有了,说多了就是废话了。
三思笔记-一步一步学oracle
或者盖国强的
或者tom大师的
官方文档其实很好 ,不过都是英文,读起来累点
如果英语不困难的话,建议你先看看Oracle官方的认证教材和课件,毕竟是官方的内容,比较权威.
在网上搜oracle Administration 就可以找到
Oracle白金级入门教程百度网盘免费资源在线学习
链接: https://pan.baidu.com/s/12GelRT8Dr4xy6XtVfK5bmQ
?pwd=rfhp 提取码: rfhp
Oracle白金级入门教程 鸿鹄论坛_阶段8-RAC高可用集群.rar
鸿鹄论坛_阶段7-数据库性能优化.rar
鸿鹄论坛_阶段6-DataGuard容灾.rar
鸿鹄论坛_阶段5-Oracle备份还原恢复.rar
鸿鹄论坛_阶段4-Oracle体系结构.rar
鸿鹄论坛_阶段3-PL-SQL编程.rar
鸿鹄论坛_阶段2-SQL结构查询语言.rar
鸿鹄论坛_阶段1-Oracle数据库的安装与介绍.rar
oracle数据库入门教程
oracle是块结构语言,oracle程序划分成几个部分,并在每个部分中写入逻辑代码块,每个块由三个子部分组成。
声明部分:此部分是以关键字DECLARE开头。这是一个可选部分,并定义了程序中要使用的所有变量,游标,子程序和其他元素。
可执行命令部分:此部分包含在关键字BEGIN和END之间,这是一个强制性部分。由程序的可执行oracle语句组成。应该有至少一个可执行代码行,可以只是一个NULL命令,表示不执行任何操作。
异常处理部分 :此部分以关键字EXCEPTION开头。这是一个可选部分,包含处理程序中错误的异常。
每个oracle语句以分号(;)结尾。使用BEGIN和END可以将oracle块嵌套在其他oracle块中。以下是Poracle块的基本结构。
Hello World示例:
END;行表示oracle块的结尾。要从oracle命令行运行代码,需要在代码的最后一行之后键入/字符。当上述代码在oracle提示符下执行时,它会产生以下结果:
oracle标识符:oracle标识符是常量,变量,异常,过程,游标和保留字。标识符包括一个字母,可选地后跟多个字母,数字,美元符号,下划线和数字符号,不得超过30个字符。
默认情况下,标识符不区分大小写。例如,可以使用integer或INTEGER来表示一个数值。 不能使用保留关键字作为标识符。
扩展资料
oracle注释程序:注释可以在编写的oracle代码中包含的说明性文字,并帮助其他人阅读源代码。所有编程语言都允许某种形式的注释。
oracle支持单行和多行注释。注释中的所有字符都被oracle编译器忽略。oracle单行注释以分隔符开头 --(双连字符),多行注释由/*和*/括起来。
当上述代码在oracle提示符下执行时,会产生以下结果:
oracle变量的名称由可选的字母,数字,美元($)符号,下划线和数字符号组成,不能超过30个字符。 默认情况下,变量名不区分大小写。不能将保留的oracle关键字用作变量名称。
oracle编程语言允许定义各种类型的变量,如:日期时间数据类型,记录,集合等,我们将在后面的章节中介绍。 在本章中仅学习基本的变量类型。
Oracle数据库基础教程的目录
第1章 Oracle10g简介 11.1 Oracle10g产品概述 11.2 Oracle10g数据库系统的体系结构 11.2.1 Oracle10g体系结构概述 11.2.2 网格结构 21.2.3 数据库逻辑结构 31.2.4 数据库物理结构 71.2.5 数据库例程 81.2.6 内部存储结构 81.2.7 进程结构 91.2.8 应用程序结构 111.2.9 事务 13习题 13第2章 安装和卸载Oracle10g数据库 152.1 安装前准备 152.1.1 安装Oracle10g数据库的硬件需求 152.1.2 安装Oracle10g数据库的软件需求 152.2 Oracle10g数据库安装过程 162.2.1 服务器安装过程 162.2.2 客户端安装过程 202.2.3 设置环境变量 212.2.4 常用Oracle服务 222.3 完全卸载Oracle10g 23习题 25第3章 Oracle数据库管理工具 263.1 企业管理器 263.1.1 EnterpriseManager10g 263.1.2 OracleEnterpriseManager 303.2 OracleAdministrationAssistant 313.2.1 启动OracleAdministrationAssistant 313.2.2 设置默认实例和注册表变量 313.2.3 设置操作系统数据库管理员和操作员 323.2.4 Oracle数据库管理 323.3 网络配置工具 333.3.1 OracleNet简介 333.3.2 NetManager 343.3.3 NetConfigurationAssistant 363.4 SQL*Plus和iSQL*Plus 383.4.1 使用SQL*Plus 383.4.2 使用iSQL*Plus 41习题 43第4章 数据库管理、配置和维护 444.1 关闭和启动数据库 444.1.1 Oracle数据库实例的状态 444.1.2 关闭数据库实例 444.1.3 启动数据库实例 474.1.4 改变数据库的状态 494.2 创建和删除数据库 494.2.1 创建数据库 494.2.2 删除数据库 564.3 配置数据库 574.3.1 查看和设置内存参数 574.3.2 还原管理 594.3.3 初始化参数管理 604.4 用户管理 634.4.1 Oracle数据库用户类型 634.4.2 默认数据库管理员用户 644.4.3 数据库管理员(DBA)的权限 64习题 65第5章 数据库存储管理 675.1 表空间管理 675.1.1 查看表空间信息 675.1.2 创建表空间 685.1.3 设置和修改表空间属性 705.1.4 删除表空间 725.1.5 段和数据块管理 725.1.6 撤销表空间 735.2 控制文件管理 745.2.1 创建控制文件 745.2.2 恢复控制文件 765.2.3 删除控制文件 765.2.4 查看控制文件信息 765.3 重做日志管理 775.3.1 重做日志的基本概念 775.3.2 查看重做日志信息 785.3.3 创建重做日志组和成员 805.3.4 重命名重做日志成员 815.3.5 删除重做日志组和成员 815.3.6 清空重做日志文件 825.4 归档日志管理 825.4.1 归档日志文件和归档模式 825.4.2 管理归档模式 835.4.3 指定归档目的地 845.4.4 查看归档日志信息 84习题 86第6章 数据库安全管理 876.1 Oracle认证方法 876.1.1 操作系统身份认证 876.1.2 网络身份认证 876.1.3 Oracle数据库身份认证 876.1.4 数据库管理员认证 886.2 用户管理 906.2.1 创建用户 906.2.2 修改用户 926.2.3 权限管理语句 936.2.4 删除用户 946.3 角色管理 956.3.1 Oracle系统角色 956.3.2 创建角色 966.3.3 对角色授权 986.3.4 指定用户的角色 996.3.5 修改角色 996.3.6 删除角色 99习题 99第7章 数据库对象管理 1017.1 表管理 1017.1.1 创建表 1017.1.2 修改表 1057.1.3 删除表 1067.1.4 插入数据 1077.1.5 修改数据 1087.1.6 删除数据 1087.2 数据查询 1087.2.1 SELECT语句的基本应用 1087.2.2 定义显示标题 1107.2.3 设置查询条件 1107.2.4 对查询结果排序 1117.2.5 使用统计函数 1127.2.6 连接查询 1137.3 视图管理 1147.3.1 视图的基本概念 1147.3.2 视图管理页面 1147.3.3 创建视图 1157.3.4 修改视图 1167.3.5 删除视图 1167.4 索引管理 1177.4.1 索引的概念 1177.4.2 索引管理页面 1187.4.3 创建索引 1187.4.4 修改索引 1207.4.5 删除索引 1207.5 序列管理 1207.5.1 创建序列 1217.5.2 修改序列 1227.5.3 删除序列 1237.5.4 序列的使用 123习题 124第8章 备份和恢复 1258.1 使用EM进行备份和恢复 1258.1.1 使用EM备份数据库 1258.1.2 使用EM恢复数据库 1328.2 RMAN技术 1368.2.1 基本概念 1368.2.2 将数据库设置为归档日志模式 1378.2.3 创建恢复目录所使用的表空间 1388.2.4 创建RMAN用户并授权 1388.2.5 创建恢复目录 1398.2.6 注册目标数据库 1398.2.7 RMAN备份和恢复 1398.3 闪回(Flashback)技术 1428.3.1 闪回技术概述 1428.3.2 闪回数据库 1438.3.3 闪回表 1468.3.4 闪回回收站 1478.3.5 闪回查询(FlashbackQuery) 1498.3.6 闪回版本查询 1498.3.7 闪回事务查询 150习题 151第9章 PL/SQL语言基础 1529.1 PL/SQL简介 1529.1.1 PL/SQL语言的结构 1529.1.2 PL/SQL示例程序 1529.2 PL/SQL组件 1539.2.1 声明部分 1539.2.2 执行部分 1549.2.3 异常处理部分 1589.3 常用函数 1609.3.1 数值型函数 1619.3.2 字符型函数 1629.3.3 日期型函数 1639.3.4 统计函数 164习题 164第10章 游标、存储过程和触发器 16610.1 游标 16610.1.1 游标的基本概念 16610.1.2 游标控制语句 16710.1.3 游标属性 16910.1.4 游标FOR循环 17110.2 存储过程管理 17410.2.1 过程 17410.2.2 函数 17610.2.3 程序包 17910.3 触发器管理 18210.3.1 触发器的基本概念 18210.3.2 创建及使用触发器 182习题 184第11章 ADO数据访问技术 18511.1 ADO数据模型 18511.2 数据库访问控件 18611.2.1 ADOData控件 18711.2.2 DataList控件和DataCombo控件 18911.2.3 DataGrid控件 19211.3 常用ADO对象 19511.3.1 Connection对象 19511.3.2 Command对象 19711.3.3 Recordset对象 19811.3.4 Field对象 200习题 201第12章 图书借阅管理系统 20312.1 系统总体设计 20312.1.1 系统功能描述 20312.1.2 创建数据库用户 20412.1.3 数据库表结构设计 20412.2 设计工程框架 20812.2.1 创建工程 20812.2.2 添加模块 20812.2.3 添加类模块 21112.3 系统主界面和登录模块设计 21512.3.1 设计主界面 21512.3.2 登录模块设计 21612.4 图书分类管理模块设计 21712.4.1 使用TreeView控件管理图书分类的方法 21712.4.2 设计图书分类信息编辑窗体 21912.4.3 设计图书分类信息管理窗体 22112.4.4 设计图书分类选择窗体 22412.5 图书信息管理模块设计 22412.5.1 设计图书信息编辑窗体 22512.5.2 设计图书信息管理窗体 22512.5.3 设计图书选择窗体 22812.6 图书库存管理模块设计 23012.6.1 设计图书库存编辑模块 23112.6.2 设计图书库存管理模块 23112.6.3 设计库存盘点编辑模块 23212.6.4 设计库存盘点管理模块 23212.7 借阅证件管理模块设计 23312.7.1 设计借阅证信息编辑窗体 23312.7.2 设计借阅证信息管理窗体 23512.7.3 设计图书借阅记录窗体 23612.8 图书借阅管理模块设计 23612.8.1 设计图书借阅信息编辑窗体 23712.8.2 设计图书借阅信息管理窗体 23812.8.3 设计图书催还信息管理窗体 239习题 240附录1 实验 241实验1 数据库管理 241目的和要求 241实验准备 241实验内容 2411.使用SHUTDOWN命令关闭数据库实例 2412.使用STARTUP命令启动数据库实例 2423.使用OracleEnterpriseManager关闭数据库实例 2424.使用OracleEnterpriseManager启动数据库实例 2425.使用SQL语句创建数据库 2436.使用SQL语句删除数据库 243实验2 角色和用户管理 244目的和要求 244实验准备 244实验内容 2441.使用SQL语句创建数据库角色 2442.使用SQL语句为数据库角色授权 2443.使用SQL语句创建数据库用户 2454.使用SQL语句指定用户角色 245实验3 表和视图管理 245目的和要求 245实验准备 245实验内容 2451.使用SQL语句创建表 2462.使用SQL语句向表中插入数据 2463.练习使用SQL语句修改表中的数据 2474.练习使用SQL语句删除表中的数据 2485.练习使用SELECT语句查询数据 2486.练习使用SQL语句创建视图 248实验4 管理索引和序列 249目的和要求 249实验准备 249实验内容 2491.使用SQL语句创建索引 2492.在创建表的同时创建索引 2493.使用SQL语句创建序列 2504.在插入数据时使用序列 250实验5 PL/SQL编程 250目的和要求 250实验准备 250实验内容 2501.使用条件语句 2512.使用分支语句 2513.使用循环语句 2514.使用系统函数 251实验6 使用游标、存储过程和触发器 251目的和要求 251实验准备 251实验内容 2511.创建和使用游标 2522.编写和执行自定义过程 2523.编写和执行自定义函数 2524.创建和使用触发器 252大作业1:VB+Oracle学生档案管理系统 253项目1 数据库结构设计 253项目2 设计工程框架 256项目3 系统主界面和登录模块设计 259项目4 院系管理模块设计 260项目5 学生信息管理模块设计 265项目6 学生奖惩管理模块设计 271项目7 学籍变动管理模块设计 272项目8 用户管理模块设计 275大作业2:ASP+Oracle网上购物系统 279项目1 数据库结构设计 279项目2 目录结构与通用模块 282项目3 管理主界面与登录程序设计 284项目4 公告信息管理模块设计 287项目5 商品类别管理模块设计 293项目6 商品管理模块设计 296项目7 订单管理模块设计 302项目8 系统主界面与登录程序设计 305项目9 设计商品查询及购买模块 306附录2 下载Oracle10g 315附录3 Oracle10g系统权限 318参考文献 322……
有些什么比较好的oracle入门级教程,求分享!
Oracle Database 11g完全参考手册
Oracle Database 11g完全手册
oracle架构的基础知识(入门级)
学习oracle,最好首先了解Oracle的框架。这样对Oracle有一个整体的认识,有高屋建瓴的作用
1、物理结构(由控制文件、数据文件、重做日志文件、参数文件、归档文件、口令文件组成)
一个数据库中的数据存储在磁盘上物理文件,被使用时,调入内存。
其中控制文件、数据文件、重做日志文件、跟踪文件及警告日志(trace files,alert files)属于数据库文件;
参数文件(parameter file)口令文件(password file)是非数据库文件
1.1数据文件:存储数据的文件.数据文件典型地代表了根据他们使用的磁盘空间和数量所决定的一个Oracle数据库的容积。
由于性能原因,每一种类型的数据放在相应的一个或一系列文件中,将这些文件放在不同的磁盘中。
types:
.data dictionary .data
.redo data .index
.temporary data 等等
1.2控制文件:包含维护和验证数据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个数据库至少需要一个控制文件.
控制文件内容
。数据库名
。表空间信息
。所有数据文件的名字和位置
。所有redo日志文件的名字和位置
。当前的日志序列号
。检查点信息
。关于redo日志和归档的当前状态信息
控制文件的使用过程
控制文件把Oracle引导到数据库文件的其它部分。启动一个实例时,Oracle 从参数文件中读取控制文件的名字和位置。安装数据库时,Oracle 打开控制文件。最终打开数据库时,Oracle 从控制文件中读取数据文件的列表并打开其中的每个文件。
1.3重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复。一个数据库至少需要两个重做日志文件.
1.4 跟踪文件及警告日志(Trace Files and Alert Files)
在instance 中运行的每一个后台进程都有一个跟踪文件(trace file)与之相连。Trace file 记载后台进程所遇到的重大事件的信息。
警告日志( Alert Log)是一种特殊的跟踪文件,每个数据库都有一个跟踪文件,同步记载数据库的消息和错误.
1.5参数文件:包括大量影响Oracle数据库实例功能的设定,如以下设定:
。数据库控制文件的定位
。Oracle用来缓存从磁盘上读取的数据的内存数量
。默认的优化程序的选择.
和数据库文件相关,执行两个重要的功能
1〉为数据库指出控制文件
2〉为数据库指出归档日志的目标
1.6归档文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。
1.7口令文件:认证哪些用户有权限启动和关闭Oracle例程.
2、逻辑结构(表空间、段、区、块)
表空间:是数据库中的基本逻辑结构,一系列数据文件的集合。
段:是对象在数据库中占用的空间.
区:是为数据一次性预留的一个较大的存储空间.
块:ORACLE最基本的存储单位,在建立数据库的时候指定.
3、内存分配(SGA和PGA)
SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。
PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反,PGA 是只被一个进程使用的区域,PGA 在创建进程时分配,在终止进程时回收.
4、后台进程
包括数据写进程(Database Writer,DBWR)、日志写进程(Log Writer,LGWR)、系统监控(System Monitor,SMON)、进程监控(Process Monitor,PMON)、检查点进程(Checkpoint Process,CKPT)、归档进程、服务进程、用户进程)
数据写进程:负责将更改的数据从数据库缓冲区高速缓存写入数据文件
日志写进程:将重做日志缓冲区中的更改写入在线重做日志文件
系统监控:检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复
进程监控:负责在一个Oracle 进程失败时清理资源
检查点进程:负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。该进程在检查点出现时,对全部数据文件的标题进行修改,指示该检查点。在通常的情况下,该任务由LGWR执行。然而,如果检查点明显地降低系统性能时,可使CKPT进程运行,将原来由LGWR进程执行的检查点的工作分离出来,
由CKPT进程实现。对于许多应用情况,CKPT进程是不必要的。只有当数据库有许多数据文件,LGWR在检查点时明显地降低性能才使CKPT运行。CKPT进程不将块写入磁盘,该工作是由DBWR完成的。 init.ora文件中 CHECKPOINT_PROCESS 参数控制CKPT进程的使能或使不能。缺省时为FALSE,即为使不能。
归档进程:在每次日志切换时把已满的日志组进行备份或归档
服务进程:用户进程服务。
用户进程:在客户端,负责将用户的SQL语句传递给服务进程,并从服务器段拿回查询数据。
5、SCN(System ChangeNumber):系统改变号,一个由系统内部维护的序列号。当系统需要更新的时候自动增加,他是系统中维持数据的一致性和顺序恢复的重要标志。
我是从“上海全鼎软件学院”毕业的————————