oracle 从入门到精通一

数据库 专栏收录该内容
6 篇文章 0 订阅

oracle产品线围绕企业开发平台的
企业开发平台四大组件:unix,weblogic中间件,java编程语言,oracle数据库

数据库管理:dba
数据库编程:分两部分
    sql编程
    pl/sql编程(子程序,触发器,面向对象,游标)

下载    官方网站下载相应的版本到本地,并解压缩。
环境    在启动安装之前的环境配置。
安装

只要是行与列的集合就是数据表

SQL> ed hello
SQL> @hello

数据库开发都以dml操作为主
数据库设计时以ddl操作为主

数据类型 number(7,2)  小数位是两位,总共是7位,整数是5位

##############################################################################

简单查询的最大特征在于可以控制列,它无法进行数据行的控制。

select [distinct] *| 列名 [别名],列名 [别名],... from 表名 [别名];

distinct是去掉重复的行。指所查询出来的所有列内容都一样的去重。

执行顺序是先from再select

子句有两个 一个是select ...,一个是from ...。或者还会有where ...,order by ...。

进行数据的投影-----控制所需要显示的数据列。

 

支持四则运算,再加上别名就美观了。

select aa,bb,cc*2 from emp;

select aa,bb,cc*2 nian from emp;

select trans_new_price-2 sum from tis_ft_adjust_price where rownum <=5;

select trans_new_price*2 sum from tis_ft_adjust_price where rownum <=5;

拼接列的值。列名1 || 列名2

select adjust_time || operator_id ww from tis_ft_adjust_price where rownum <=5;

格式化输出,字符串用单引号引起来,数字直接写,不用引用。

select 'tj:'||adjust_reason||',ti:'||ADJUST_TIME ww from tis_ft_adjust_price where rownum <=5;
 

##############################################################################

限定查询,控制数据行

1.sql语句的执行顺序

第三步:选出所需要的数据列  select *

第一步:确定数据来源  from table

第二步:筛选数据行  where 条件

第四步:数据排序  order by

2.限定符号的使用,以下是标准sql支持的。

若干个条件判断符,

>,<,=,>=,<=,!=,

is not null,is null

like,not like  _匹配任意一位字符,匹配多位。

in,not in  not in中不能有null,in可以有。where 字段  in(8899,2234,7554,null); 不连续的行

betwwen...and  where 字段|数值 betwwen  最小值 and 最大值;  连续的行

以上只能使用一次,如果有多个条件,则用逻辑运算符:

and,or,not(非)

书写标准,先写查列,再将select from where 分别写三行,再写各种限定,表限定,行限定,列限定。这是按照执行顺序写的。

desc tis_bk_user;
select user_id
from tis_bk_user
where rownum <=5;

select *
from tis_ft_g_owner_clear
where trans_freight between 10000 and 11000;

betwwen...and...是一个运算符,也可以用关系运算符与逻辑运算符组合来使用,但效率低

如:where trans_freight>10000 and trans_freight<11000

oracle所有的运算符不受数据类型的控制,以上是对数字的判断,字符串意义不大,重点是对日期时间的判断。

select clear_time
from tis_ft_g_owner_clear
where clear_time between '2015-07-28 11:13:57' and '2015-07-29 11:47:07';

select *
from tis_bk_role
where not role_id<to_number('001056'); #  to_number为函数

 

空判断

select null + 1 from emp;  这个表有几行,就返回几行空行

null不能使用关系运算,关系可以判断的是数据,null属于一个未知的数据。

#in

select *
from tis_bk_role
where role_id  in (001050,001025,001034);

 

select * from emp where enam like '%%';

select * from emp;

这两条是一样的结果,下面虽然效率高,但上面在程序开发中方便后续扩充

 

order by 字段1 asc|desc,字段2 asc|desc...

默认是按照自然顺序排列的,也就是输入数据时的顺序。也可以进行多字段的排序。如果某一个字段重复的话。

所有的排序操作都是在where之后执行的,order by 永远最后执行

 

##############################################################################

单行函数

字符串函数  replace(),substr(),length(),

select user_accout,initcap(USER_ACCOUT)
from tis_bk_user;

select user_accout,length(USER_ACCOUT)
from tis_bk_user;

select * 
from tis_bk_user 
where length(user_accout)=5;

replace(列名|数据,‘原内容’,'替换的内容')
利用replace()可以取消字符串中的空格
create table t2 as select * from tis_bk_user_info;
select replace(user_name,'木','森')
from t2
where user_name like '%神木%';

下标从1开始的
substr(列名|数据,开始点)  指定位置到结尾
substr(列名|数据,开始点,长度)  截取范围
select substr('helloworld',3) from dual;
select substr('helloworld',3,5) from dual;
截取后三个
select substr('helloworld',length('helloworld')-2) from dual;
select substr('helloworld',-3)

数值函数

mod(),round(),trunc()

round()    四舍五入
-2小数点前两位,2小数点后两位
select
  round(998.8876568),
  round(9999.77777655,2),
  round(9999.77777655,-2),
  round(-15.132)
from dual;

trunc()    不四舍五入进行处理

mod()    求模(求余数)

日期函数

/*日期函数(oracle自己特色)

如何可以取得当前的日期,用伪列sysdata

伪列sysdate,systimestamp,
虚拟表dual*/
select sysdate,systimestamp from dual;

/*日期计算模式
日期+1    后一天
日期-1    前一天
日期-日期    
没有日期+日期*/

select sysdate,sysdate-2,sysdate+3 from dual;

/*如果只是依靠天娄无法获得一个准确的年或月,所以oracle里面才提供了日期处理函数,
利用这些函数可以避免闰年与闰月的问题*/

/*计算下一个周二的日期*/
select next_day(sysdate,'TUE') from dual;

trunc(months_betwwen(sysdate,hiredate)/12) year
trunc(mod(months_between(sysdate,hiredate)/12)) month

转化函数

利用to_char进行年,月,日的拆分,只是提供一个思路,oracle本身的一个自动转换。
to_char
下面两个几乎等于无用
to_date
to_number

to_char(列|日期|数字,格式)
select to_char(sysdate,'yyyy:mm:dd'),to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

select to_char(98468472392823,'L999,999,999,999,999,999') from dual;

通用函数

nvl()
decode()

##############################################################################

多表查询(进入了复杂查询的阶段)

笛卡尔积一直存在,无法消除,虽然能消除显示问题。数据量一大,多表查询会带来严重的问题。

多表查询之中的多张表一定要有关联关系,否则不能查询

判断程序慢的两种方法:程序算法慢(cpu 占用率高),数据库数据大(内存占用高)

由数据量决定,用不用多表查询,如果数据量几百行,随便用,几十万行,就得选用其它技术点了。

select count(*) 
from costs a,prod b
where a.prod_id=b.prod.id;

有明确的关联字段的案例如下:

确定要使用的数据表  emp,dept

确定已知的关联字段  prod_id

select a.pname,a.sal,b.loc,b.job

from emp a,dept b

where a.prod_id=b.prod_id;

没有明确的关联字段,而是关联条件

select e.name,e.sal,s.grade

from emp e,salgrade s

where e.sal between s.lowsal and s.higsal;

分析过程如下:(关联字段或关联条件)

第一:写出第一张表的查询

第二:引入第二张表,加表,加字段,加条件,消除笛卡尔积的显示

第三:引入第三张表,加表,加字段,加条件,用and连接。

##############################################################################

表的连接操作

连接操作本身就是一个查询

select * from dept;
select * from salgrade;
两张表的所有行组合,from之中
select * from salgrade,dept;
两张表所有组合的任意列,select list之中
select a.grade,b.dname from salgrade a,dept b;

对于两张表进行多表查询对于消除笛卡尔积主要依靠连接模式来处理的,表的连接模式有两种:

内连接:在之前都利用where子句来消除笛卡尔积,只有满足条件的数据才会显示出来

外连接:不用管是左还是右,只要所需要的数据全部显示就可以了。分左外连接,右外连接,全外连接(几乎不会出现)

where d.deptno=s.deptno(+)  左连接

where d.deptno(+)=s.deptno  右连接

(+)是oracle特有的(oracle9 之前)

left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.
换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).
B表记录不足的地方均为NULL.

http://www.cnblogs.com/kerrycode/p/5935704.html

# oracle中||表示连接的意思

select a.user_id,a.user_account||','||a.user_type aa,b.user_name
from tis_ft_user a,tis_ft_user_info b 
where rownum<5 and a.user_id(+)=b.user_id;

select a.user_id,a.user_account||','||a.user_type aa,b.user_name
from tis_ft_user a left join tis_ft_user_info b on a.user_id=b.user_id
where rownum<5;

select user_id,a.user_account||','||a.user_type aa,b.user_name
from tis_ft_user a inner join tis_ft_user_info b using(user_id)
where rownum<5;

inner join(相等联接或内联接)

SELECT * FROM a
INNER JOIN b
ON a.aID =b.bID

等同于以下SQL句:
SELECT *
FROM a,b
WHERE a.aID = b.bID 

##############################################################################

数据集合操作  并集,交集,差集,补集

 

如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字。union(或称为联合)的作用是将多个结果合并在一起显示出来。

union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。
1. union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
2. union All:对两个结果集进行并集操作,包括重复行,不进行排序;
3. intersect:对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;
4. minus:对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序。

可以在最后一个结果集中指定Order by子句改变排序方式。

SELECT * FROM emp  
WHERE sal < 1500;
结果:
SMITH	CLERK	7902	17-DEC-80	800		20
WARD	SALESMAN	7698	22-FEB-81	1250	500	30
MARTIN	SALESMAN	7698	28-SEP-81	1250	1400	30
ADAMS	CLERK	7788	23-MAY-87	1100		20
JAMES	CLERK	7698	03-DEC-81	950		30
MILLER	CLERK	7782	23-JAN-82	1300		10


SELECT * FROM emp  
WHERE sal  BETWEEN 1000 AND 2000  
ORDER BY 1;
结果:
ALLEN	SALESMAN	7698	20-FEB-81	1600	300	30
WARD	SALESMAN	7698	22-FEB-81	1250	500	30
MARTIN	SALESMAN	7698	28-SEP-81	1250	1400	30
TURNER	SALESMAN	7698	08-SEP-81	1500	0	30
ADAMS	CLERK	7788	23-MAY-87	1100		20
MILLER	CLERK	7782	23-JAN-82	1300		10


SELECT * FROM emp  
WHERE sal < 1500
union  
SELECT * FROM emp  
WHERE sal  BETWEEN 1000 AND 2000  
ORDER BY 1;
结果:
SMITH	CLERK	7902	17-DEC-80	800		20
ALLEN	SALESMAN	7698	20-FEB-81	1600	300	30
WARD	SALESMAN	7698	22-FEB-81	1250	500	30
MARTIN	SALESMAN	7698	28-SEP-81	1250	1400	30
TURNER	SALESMAN	7698	08-SEP-81	1500	0	30
ADAMS	CLERK	7788	23-MAY-87	1100		20
JAMES	CLERK	7698	03-DEC-81	950		30
MILLER	CLERK	7782	23-JAN-82	1300		10


SELECT * FROM emp  
WHERE sal < 1500
union all
SELECT * FROM emp  
WHERE sal  BETWEEN 1000 AND 2000  
ORDER BY 1;
SMITH	CLERK	7902	17-DEC-80	800		20
ALLEN	SALESMAN	7698	20-FEB-81	1600	300	30
WARD	SALESMAN	7698	22-FEB-81	1250	500	30
WARD	SALESMAN	7698	22-FEB-81	1250	500	30
MARTIN	SALESMAN	7698	28-SEP-81	1250	1400	30
MARTIN	SALESMAN	7698	28-SEP-81	1250	1400	30
TURNER	SALESMAN	7698	08-SEP-81	1500	0	30
ADAMS	CLERK	7788	23-MAY-87	1100		20
ADAMS	CLERK	7788	23-MAY-87	1100		20
JAMES	CLERK	7698	03-DEC-81	950		30
MILLER	CLERK	7782	23-JAN-82	1300		10
MILLER	CLERK	7782	23-JAN-82	1300		10


SELECT * FROM emp  
WHERE sal < 1500
intersect  
SELECT * FROM emp  
WHERE sal  BETWEEN 1000 AND 2000  
ORDER BY 1;
WARD	SALESMAN	7698	22-FEB-81	1250	500	30
MARTIN	SALESMAN	7698	28-SEP-81	1250	1400	30
ADAMS	CLERK	7788	23-MAY-87	1100		20
MILLER	CLERK	7782	23-JAN-82	1300		10


SELECT * FROM emp  
WHERE sal < 1500
minus
SELECT * FROM emp  
WHERE sal  BETWEEN 1000 AND 2000  
ORDER BY 1;
SMITH	CLERK	7902	17-DEC-80	800		20
JAMES	CLERK	7698	03-DEC-81	950		30

##############################################################################

统计函数(也叫分组函数)

count(),sum(),avg(),:支持数字

max(),min():支持数字,字符串,日期数据类型

在没有数据的时候,只有count返回结果,其它是null

count()有三种形式:

count(*):统计所有的数据行

count(字段):统计所有不为空的数据行数

count(distinct 字段)统计所有不重复的数据行

##############################################################################

分组统计

group by  找重复的列

第一步:确定数据来源  from table

第二步:筛选数据行  where 条件

第三步:针对筛选的数据行进行分组  group by 分组字段1,分组字段2,

第四步:选出所需要的数据列  select *|分组列

第五步:数据排序  order by

 

select sid,count(*),min(statistic#),max(statistic#)
from v$sesstat
group by sid;

 

统计函数
是针对一张表的完整统计,

分组统计
分组的前提是存在有重复,允许单独一行记录进行分组。


分组的时候有一些约定条件
1、如果查询不使用group by 子句,那么select 子句中只允许出现统计函数,其它任何字段不允许出现。
或者说是统计函数不与其它字段同时出现。

正确
select count(*) from emp;
错误
select empno,count(*) from emp;
2、如果查询中使用group by 子句,那么select 子句中只允许出现分组字段,统计函数,其它任何字段都不允许出现。
正确

select job,count(*) from emp group by job;
错误
select ename,job,count(*) from emp group by job;
3、统计函数允许嵌套,但是嵌套之后的select 子句里面只允许出现嵌套函数,而不允许出现任何字段,包括分组字段。
正确

select max(avg(sal)) from emp group by deptno;
错误
select deptno,max(avg(sal)) from emp group by deptno;
可以将下面的查询结果想象成一张数据表,这张表没有group by子句,那么就回到了第一个约定条件,只允许出现统计函数。
所以就解释了第三个约定条件。
select deptno,avg(sal) from emp group by deptno;

##############################################################################

多表查询与分组统计

 

having子句,此时就不能用where子句了,having 跟随group by 而出现。

针对分组后的数据进行筛选,是在group by

select job,avg(sal)

from emp

group by job

having avg(sal)>2000;

where 与having的区别

1:where 是在group by 之前执行的,先选出可以参与分组的数据,不能使用统计函数。

2:having是在group by 之后执行的,可以使用统计函数。

##############################################################################

子查询

子查询并没有特殊的语法,可以出现在任意子句之中(select ,from,where,group by,having,order by),但必须用()声明

子查询就是查询的嵌套。

##############################################################################

在where子句中使用子查询
where子句主要是进行数据的筛选,而且通过分析可以发现,
单行单列,单行多列,多行单列,都可以在where子句
中出现。

--查单行单列的
--要求查出谁的工资最低
不能直接拿800这个数据直接使用,因为这个数据是需要统计出来的,
而想要知道这个内容,可以利用min();
--所以分两步
1.先查出最低的
select min(sal) from emp;
2.再用最低的去过滤
以上查询返回单行单列,本质上就是一个数值。
select * from emp
where sal=(select min(sal) from emp);

上下两个查询,下面是写死了,上面动态计算的,比较灵活。
select * from emp
where sal=800;

--查出公司雇佣最早的雇员
select * from emp
where hiredate=(select min(hiredate) from emp);

--子查询返回单行多列(了解就行,用的不多)
--查出与scott工资相同,职位相同的所有雇员
select * from emp
where 
(sal,job)=(select sal,job from emp where ename='SCOTT')
and ename<>'SCOTT';


--子查询返回多行单列(比较重要)
--子查询返回多行单列实际上相当于告诉用户一个数据的操作范围,从...到...
而如果想要进行范围的判断,在where中提供有三个运算符,in,any,all
in与not in

select sal from emp where job='MANAGER';
上面返回了多行单列
select * from emp
where sal in 
(select sal from emp where job='MANAGER');
多行单列就相当于给出了我们一个查询范围

select * from emp
where sal not in 
(select sal from emp where job='MANAGER');

not in中不能有空,否则查不出来。一定要保证子查询中不能有空
select * from emp
where comm not in
(select comm from emp);

 

any操作

sal=any        功能上与in没有区别
sal>any        比子查询返回内容的最小值要大
sal<any        比子查询返回内容的最大值要小

select * from emp
where sal>any
(select sal from emp where job='MANAGER');

all操作

sal>all        比子查询返回内容的最大值要大
sal<all        比子查询返回内容的最小值要小

select * from emp
where sal<all
(select sal from emp where job='MANAGER');

##################################################################

exists()条件

主要测试在一个子查询中行的存在
如果子查询有数据返回(至少有一行,不管什么数据)就表示条件满足,那么就可以显示出数据,否则不显示

select * from emp
where exists (
select * from emp where deptno=20);

如果子查询有数据返回,外部查询就有数据返回,子没有父就没有

exists()与in()区别
exists()以行为主
in()以列(数据)为主
exists()要比in()性能更高,判断行有无比判断数据有无更快。


使用exists()只关心子查询里面返回的是否有行,至于什么行,不关心
select * from emp
where exists(
select 'hello' from dual where 1=1);

select * from emp
where not exists(
select 'hello' from dual where 1=2);

##################################################################

having子句中使用子查询
要使用having必须结合group by子句,要使用group by必须要有分组

部门平均工资大于公司平均工资的部门编号,人数与部门工资

select deptno,count(*),avg(sal) from emp
group by deptno
having avg(sal)>(select avg(sal) from emp);


select子句中使用子查询(基本没用)
意义不大,性能不高

肯定使用多表查询
select e.empno,e.job,e.ename,d.dname
from emp e,dept d
where e.deptno=d.deptno;

变换成子查询
select e.empno,e.job,e.ename,
    (select dname d from dept d where d.deptno=e.deptno)
from emp e;

实际上在select子句里面出现的子查询核心目的在于:行列转换

 

from子句中出现子查询(重点)

主要是思路问题,是需要去思考的

  • 1
    点赞
  • 0
    评论
  • 11
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

【精华】Oracle从入门到精通pdf高清版: 清原版文档,非扫描件 一、SQL................................................... 1.1、基本概念:........................................... 1.2、数据库安全:......................................... 1.3、基本的SQL SELECT 语句................................ 1.4、SELECT语句........................................... 1、语法:................................................. 2、SQL语句说明:.......................................... 3、数字和日期都可以使用数学运算符建立表达式。............. 4、定义空(NULL)值....................................... 5、别名................................................... 6、spool +路径............................................ 7、连接操作符: || ....................................... 8、文本字符串............................................. 9、DISTINCT .............................................. 1.5、SQLPLUS 与 SQL 的关系................................ 1、SQLPLUS命令的功能: ................................... 2、查询 SQLPLUS 命令...................................... 3、SQLPLUSW 在 WINDOWS 下运行的分析器。................... 4、SQLPLUS 命令: ........................................ 1.6、单行函数............................................. 1、character字符类型函数: ............................... 2、number数字类型函数..................................... 3、时间类型函数:(date) ................................ 1.7、嵌套函数:........................................... 1. 通用函数:............................................. 2. 条件表达式:........................................... 3. 从多表中显示数据: .................................... 1.8、用字函数产生的总计................................... 1.9、子查询:............................................. 2.0、替换变量:........................................... 1.&....................................................... 2.&&...................................................... 2.1.环境变量:............................................ 2.2 格式化命令:.......................................... 2.3 做脚本文件的过程:.................................... 2.3 数据操作语句:........................................ 1. 插入.................
Oracle 从入门到精通》中的视频教程和PPT资料。 Oracle 11G从入门到精通视频的PPT 第1章-Oracle 11g数据库简介 认识Oracle 11g 回忆Oracle的产品版本 学习Oracle 11g的新特性 第2章-Oracle 11g的安装与测试 能够使用Oracle 11g的基本条件 在Windows 2003上安装Oracle 11g 移除Oracle 11g 第3章-熟悉数据库 什么是数据库 范式,设计关系型数据库的准则 绘制E-R图设计数据库 第4章-SQL基础 SQL-数据库沟通的语言标准 Oracle 11g中支持的数据类型 数据库定义语言(DDL) 约束的使用 数据操纵语言(DML) 第5章-利用SELECT检索数据 SQL-数据库沟通的语言标准 Oracle 11g中支持的数据类型 数据库定义语言(DDL) 约束的使用 数据操纵语言(DML) 第6章-Oracle内置函数 数值型函数 字符型函数 日期型函数 转换函数 NULL函数 集合函数 其他函数 第7章-PLSQL基础 PL/SQL是什么 PL/SQL 变量的使用 表达式 PL/SQL结构控制 PL/SQL中使用DML和DDL语言 PL/SQL中的异常 PL/SQL函数编写 第8章-游标,数据的缓存区 什么是游标 显示游标 隐式游标 第9章-视图,数据库中虚拟的表 什么是视图 视图的创建 操作视图数据的限制 视图的修改 视图的删除 第10章-存储过程,提高程序执行的效率 什么是存储过程 在SQL*Plus中创建存储过程 使用PL/SQL工具创建存储过程 修改删除存储过程 第11章-触发器,保证数据的正确性 什么是触发器 SQL*PLUS操作触发器 使用PL/SQL工具操作触发器 删除修改触发器 第12章-事务和锁,确保数据安全 什么是事务 什么是锁 第13章-使用Oracle 11g Enterprise Manager 什么是Oracle 11g Enterprise Manager 使用OEM管理Oracle 第14章-常用工具介绍 什么是SQL*Plus 使用SQL*Plus 使用PL/SQL Developer 第15章-控制文件和日志文件 控制文件与日志文件 初识控制文件 控制文件的多路复用 创建控制文件 日志文件的管理 第16章-表空间的管理 与表空间有关的概念 表空间的管理 临时表空间的管理 数据文件管理 第17章-与数据库安全性有关的对象 用户管理 权限管理 角色管理 概要文件PROFILE 第18章-备份与恢复 数据库备份与恢复 物理备份和恢复数据库 逻辑备份和恢复数据库 本章小结 第19章-使用RMAN工具 RMAN的概述 使用恢复目录 通道分配 备份集 使用RMAN恢复 本章小结 http://down.51cto.com/data/376692 第20章-在线考试系统数据库设计 在线考试系统需求 模块设计 本章小结 第21章-在.NET中连接Oracle 什么是ADO.NET 使用绑定的方式连接Oracle 使用写代码的方式连接Oracle 第22章-在Java中连接Oracle JDBC与ODBC简介 Thin方式连接Oracle JDBC-ODBC桥连接Oracle
中文名: Oracle 11g权威指南(第2版) 作者: 谷长勇图书分类: 软件 资源格式: PDF 版本: 扫描版 出版社: 电子工业出版社书号: 9787121145803发行时间: 2011年09月01日 地区: 大陆 语言: 简体中文 简介: 内容简介: 《Oracle 11g权威指南(第2版)》从数据库的基础知识入手,全面系统地介绍了Oracle 11g 数据库管理系统的所有特性,并配以翔实的实际用例,论述严谨,深入探讨了这些特性的细节内容,同时具有很强的可操作性和实用性。   《Oracle 11g权威指南(第2版)》内容共37章,分为10大部分。第一部分为Oracle 11g 数据库基础;第二部分为Oracle之SQL与PL/SQL;第三部分为Oracle客户端工具,主要介绍SQL*Plus和SQL Developer;第四部分为Oracle 11g数据库管理,主要介绍管理控制文件/重做日志文件/表空间/数据文件、模式对象管理、表分区和索引分区、用户管理与安全、数据完整性和数据约束等;第五部分为Oracle数据库优化,着重介绍Oracle数据库的系统调整、SQL优化等知识;第六部分为Oracle 11g数据库的备份与恢复;第七部分为Oracle 11g数据库集群技术与高可用性,包括真正应用集群(RAC)、自动存储管理(ASM)、容灾与数据卫士、故障诊断、真正应用测试等内容;第八部分为商业智能与数据仓库,介绍了Oracle 11g数据库在构建企业级数据仓库时的强大功能和诸多新特性;第九部分为非结构化数据库,包括空间数据库和XML数据库内容;第十部分为Oracle 11g数据库的其他新特性。 资源来自网络,如侵犯了您的权利,请点击,谢谢! 白盘用户请到本页用户评论处1楼找下载链接。 内容截图: 目录: 第一部分 Oracle数据库11g基础 第1章 数据库基础简介 2 本章主要介绍了数据库的基础知识,包括数据库、数据库管理系统及关系数据库等基本概念,此外还介绍了目前应用比较广泛的各种关系式数据库系统。 1.1 数据库起源 2 1.2 数据库主要特征 2 1.3 数据库构成 3 1.4 数据库管理系统 3 1.5 关系数据库 4 1.6 本章小结 8 第2章 Oracle 11g概述 9 本章主要介绍了数据库的基础知识、Oracle数据库的特点、发展历史及Oracle的最新数据库版本11g的一些新的特性。 2.1 Oracle数据库发展演进史 9 2.2 Oracle版本号的含义 10 2.3 Oracle网格技术 11 2.3.1 网格概述 11 2.3.2 网格的基本属性 12 2.3.3 Oracle网格基础架构 13 2.4 Oracle 11g新特性 15 2.4.1 企业网格管理的高可用性 15 2.4.2 更加优化的性能 17 2.4.3 简化的信息管理 18 2.4.4 集成的信息 20 2.4.5 内置的业务智能 21 2.4.6 开发平台 22 2.5 本章小结 24 第3章 Oracle 11g数据库的安装、启动及关闭 25 本章详细讲述了Oracle数据库的安装、启动、关闭的整个过程,以及如何使用DBCA创建一个数据库。对数据库管理员而言,这些操作都是最基本的。 3.1 在Windows环境下安装的软硬件要求 25 3.2 在Windows环境下安装Oracle 11g 25 3.3 在Linux环境下安装前的准备 28 3.3.1 安装Oracle 11g对硬件的要求 28 3.3.2 安装Oracle 11g对操作系统的要求 29 3.3.3 安装RedHat AS4操作系统时的注意事项 31 3.3.4 检查安装Oracle 11g所必需的包 33 3.3.5 内核参数配置 33 3.3.6 创建安装数据库所需要的用户(组) 34 3.3.7 添加Oracle用户的限制参数 34 3.3.8 创建安装所需要的目录 34 3.3.9 设置Oracle的环境变量 35 3.3.10 解压缩安装包 35 3.4 在Linux环境下安装Oracle 11g 36 3.4.1 Oracle用户图形终端方式登录 36 3.4.2 安装操作过程 36 3.4.3 登录OEM界面验证安装 40 3.5 Oracle 11g数据库实例的创建 40 3.5.1 在Windows环境下创建数据库 40 3.5.2 在Linux环境下用DBCA创建数据库 41 3.6 Oracle 11g实例的启动和关闭 46 3.6.1 在Windows操作系统下启动和关闭Oracle实例 46 3.6.2 在Linux环境下启动Oracle实例 47 3.6.3 在Linux环境下关闭Oracle实例 49 3.6.4 在Linux环境下启动和关闭Oracle监听进程 49 3.7 本章小结 50 第4章 Oracle数据库结构 51 本章将介绍Oracle数据库的体系结构、服务器结构、Oracle数据库文件及后台进程。 4.1 Oracle体系结构 51 4.1.1 基本术语 51 4.1.2 体系结构图解 52 4.1.3 表空间与数据文件 52 4.1.4 临时表空间与临时文件 54 4.1.5 Oracle存储结构介绍 55 4.1.6 控制文件 55 4.1.7 日志文件 56 4.1.8 服务器参数文件 58 4.1.9 密码文件/跟踪文件/警告日志 59 4.2 Oracle服务器结构 60 4.2.1 Oracle服务器与Oracle实例 60 4.2.2 物理结构与逻辑结构的关系 60 4.2.3 系统全局区(SGA) 61 4.2.4 后台进程 62 4.2.5 程序全局区PGA 64 4.3 数据字典 65 4.3.1 Oracle数据字典的构成 65 4.3.2 Oracle常用的数据字典 65 4.3.3 Oracle常用的动态性能视图 67 4.4 本章小结 67 第二部分 Oracle之SQL&PL/SQL 第5章 SQL语言介绍 70 本章主要介绍了以下内容:SQL语言概述、如何使用简单和复杂的SELECT检索语句、如何使用基本函数、如何使用DDL语句、如何使用DML语句、如何使用描述语句。 5.1 SQL语言概述 70 5.1.1 SQL语言特点 71 5.1.2 SQL语言分类 71 5.1.3 SQL语言的编写规则 71 5.2 使用SELECT检索数据 72 5.2.1 使用FROM子句指定表 73 5.2.2 使用SELECT(必要元素)指定列 73 5.2.3 使用WHERE子句指定行 74 5.2.4 使用ORDER BY子句 79 5.2.5 使用DISTINCT检索唯一的表列值 80 5.2.6 使用算术运算符 81 5.3 基本函数的使用 82 5.3.1 字符函数 82 5.3.2 数字函数 85 5.3.3 日期函数 87 5.3.4 转换函数 87 5.3.5 组函数 88 5.3.6 使用GROUP BY进行数据分组 89 5.3.7 使用HAVING子句限制分组数据 90 5.3.8 Oracle递归函数的使用 91 5.4 复杂SELECT语句的使用 91 5.4.1 集合操作 91 5.4.2 子查询 96 5.4.3 表连接 96 5.4.4 CASE语句的使用 99 5.4.5 强大的DECODE函数 101 5.5 DDL语句的使用 102 5.5.1 常用的数据类型 102 5.5.2 表 104 5.5.3 主键 105 5.5.4 外键 107 5.5.5 约束 108 5.5.6 索引 110 5.5.7 视图 112 5.5.8 序列 113 5.5.9 同义词 114 5.6 DML语句的使用 114 5.6.1 使用INSERT语句插入表数据 115 5.6.2 使用UPDATE语句更新表数据 116 5.6.3 使用DELETE语句删除表数据 117 5.6.4 使用MERGE语句修改表数据 117 5.6.5 TRUNCATE语句的使用 121 5.7 使用描述语句 121 5.8 本章小结 122 第6章 PL/SQL基础编程 123 本章介绍了以下内容:PL/SQL概述、PL/SQL编程、过程和函数、错误处理。 6.1 PL/SQL概述 123 6.1.1 PL/SQL语言 123 6.1.2 PL/SQL主要特性 125 6.1.3 PL/SQL的开发和运行环境 127 6.1.4 运行PL/SQL程序 128 6.2 PL/SQL编程 129 6.2.1 基本语言块 130 6.2.2 字符集和语法注释 130 6.2.3 数据类型和类型转换 132 6.2.4 变量和常量 136 6.2.5 表达式和运算符 138 6.2.6 流程控制 140 6.3 过程和函数 147 6.3.1 过程 148 6.3.2 函数 149 6.4 错误处理 151 6.4.1 预定义异常 151 6.4.2 用户定义异常 153 6.5 本章小结 155 第7章 PL/SQL高级应用 156 本章介绍了以下内容:包的概念和使用、集合的使用及PL/SQL的新特性。 7.1 包 156 7.1.1 包头 156 7.1.2 包体 157 7.1.3 重载 161 7.1.4 包的初始化 163 7.1.5 Oracle内置包 165 7.2 集合 165 7.2.1 index-by表 166 7.2.2 嵌套表 167 7.2.3 可变数组 169 7.2.4 集合的属性和方法 169 7.3 PL/SQL游标 173 7.3.1 创建游标 174 7.3.2 使用游标的FOR循环 178 7.3.3 使用游标变量 180 7.3.4 游标变量实例 187 7.3.5 使用游标表达式 191 7.4 Oracle 11g中PL/SQL的新特性 192 7.5 本章小结 194 第三部分 Oracle客户端工具 第8章 SQL*Plus工具介绍 196 本章介绍了以下内容:如何使用SQL *Plus的与数据库交互、如何使用SQL *Plus的编辑功能、如何使用SQL *Plus格式化查询结果。 8.1 用SQL*Plus与数据库交互 196 8.1.1 SQL*Plus的主要功能 197 8.1.2 启动SQL*Plus连接数据库 197 8.2 使用SQL*Plus的编辑功能 199 8.2.1 SQL语句、PL/SQL块与SQL*Plus命令的区别 199 8.2.2 编辑命令 200 8.2.3 保存命令 202 8.2.4 加入注释 203 8.2.5 运行命令 205 8.2.6 编写交互命令 206 8.2.7 使用绑定变量 213 8.2.8 跟踪语句 216 8.3 使用SQL*Plus格式化查询结果 221 8.3.1 格式化列 221 8.3.2 定义页与报告的标题和维 231 8.3.3 存储和打印结果 237 8.4 本章小结 238 第9章 Oracle SQL Developer工具介绍 239 本章主要介绍了Oracle SQL Developer的使用,包括创建数据库连接,使用SQL Worksheet操作数据库,开发调试PL/SQL语句,运行和创建报表。另外,通过实例演示了如何使用SQL Developer的迁移工作台完成数据库的迁移操作。 9.1 SQL Developer概述 239 9.1.1 SQL Developer版本演化 239 9.1.2 SQL Developer产品特点 239 9.1.3 SQL Developer下载与安装 239 9.2 创建数据库连接 240 9.2.1 连接到Oracle数据库 240 9.2.2 连接到MySQL数据库 242 9.2.3 连接到SQL Server数据库 242 9.3 使用SQL Worksheet操作数据库 242 9.3.1 检索数据 243 9.3.2 插入数据 245 9.3.3 修改数据 246 9.3.4 删除数据 248 9.4 使用SQL Developer开发和调试PL/SQL 249 9.4.1 准备工作 249 9.4.2 创建并编译PL/SQL过程 249 9.4.3 运行PL/SQL过程 254 9.4.4 调试PL/SQL过程 256 9.5 使用SQL Developer运行或创建报表 261 9.5.1 运行预定义报表 261 9.5.2 创建自定义报表 262 9.6 使用SQL Developer导出操作 263 9.6.1 导出数据 264 9.6.2 导出对象定义 265 9.7 使用SQL Developer迁移工作台 266 9.7.1 迁移工作台概述 266 9.7.2 数据迁移实例演示 267 9.8 本章小结 273 第四部分 Oracle 11g数据库管理 第10章 管理控制文件 276 本章主要讲述了Oracle数据库对控制文件的管理。包括控制文件的内容、更新、多路复用及创建和维护。控制文件对数据库的正常运行至关重要,通过本章的学习,读者可以对控制文件有一定的理解。 10.1 控制文件概述 276 10.1.1 控制文件的组成 276 10.1.2 控制文件的大小 277 10.1.3 控制文件更新 277 10.1.4 可复用区与不可复用区 277 10.2 控制文件的多路复用 277 10.2.1 使用init.ora多路复用控制文件 277 10.2.2 使用SPFILE多路复用控制文件 278 10.2.3 添加更多控制文件副本的步骤 278 10.3 查询控制文件信息 279 10.4 控制文件的创建步骤 279 10.5 维护控制文件 281 10.6 本章小结 283 第11章 管理日志文件 284 本章讲述了联机重做日志的作用和管理,联机重做日志是数据库正常运行不可或缺的文件,对于实例出现故障时的正常恢复是十分重要的。 11.1 管理重做日志文件 284 11.2 日志文件组、日志切换和日志归档 284 11.3 了解检查点 285 11.4 查询、新建、删除日志文件 285 11.5 本章小结 287 第12章 管理表空间和数据文件 288 本章主要介绍了Oracle数据库的逻辑结构、默认表空间,以及表空间的创建、设置、删除等管理操作。这些操作在数据库的日常管理中是十分常用的。 12.1 表空间与数据文件的关系 288 12.2 Oracle 11g默认的表空间列表 289 12.2.1 SYSTEM表空间 289 12.2.2 SYSAUX表空间 290 12.3 建立表空间 291 12.3.1 创建表空间的语法 291 12.3.2 选择盘区管理方式建立表空间 292 12.3.3 选择段空间管理方式建立表空间 293 12.3.4 创建非标准块表空间 294 12.3.5 建立大文件表空间 294 12.4 维护表空间与数据文件 295 12.4.1 改变表空间的读写状态 295 12.4.2 改变表空间的名称 296 12.4.3 设置默认表空间 296 12.4.4 删除表空间 297 12.4.5 增建新的数据文件到表空间 297 12.4.6 删除表空间中无数据的数据文件 298 12.4.7 数据文件的自动扩展设置 298 12.5 管理撤销表空间(UNDO) 299 12.5.1 撤销表空间的作用 299 12.5.2 与撤销表空间有关的参数 300 12.5.3 表空间的基本操作 301 12.6 管理临时表空间 303 12.6.1 临时表空间的概念 303 12.6.2 建立临时表空间 304 12.6.3 查询临时表空间的信息 304 12.6.4 临时表空间组 304 12.7 本章小结 306 第13章 模式对象管理 307 本章讲述了Oracle数据库中最重要的几个模式对象的管理,包括表、索引、视图、同义词、序列等。 13.1 模式与模式对象 307 13.2 管理表 307 13.2.1 建表时的考量 307 13.2.2 列数据类型 308 13.2.3 创建表的语法 309 13.2.4 创建表的实例 310 13.2.5 查看表的信息 311 13.2.6 修改表结构 312 13.2.7 重命名表 313 13.2.8 监控表的存储空间 313 13.2.9 修改表空间的存储设置 314 13.2.10 删除表 314 13.2.11 外部表的管理 314 13.3 索引 316 13.3.1 概念 316 13.3.2 各种类型索引的比较和选择 317 13.3.3 索引的基本操作 317 13.4 视图 320 13.4.1 概念 320 13.4.2 视图的基本操作 320 13.5 同义词 322 13.6 序列 323 13.7 本章小结 323 第14章 表分区与索引分区 324 本章介绍了表分区和索引分区及其在数据库性能优化方面的作用,并通过实例介绍了Oracle 11g中对索引技术最新的增强功能。 14.1 分区技术概述 324 14.2 表分区的方法说明及实例 325 14.2.1 范围分区(Range) 325 14.2.2 散列(Hash)分区 327 14.2.3 列表分区(List) 328 14.2.4 组合分区 328 14.2.5 Interval分区 329 14.2.6 外键分区 330 14.2.7 虚拟列分区 331 14.3 表的分区策略 332 14.4 管理表分区 332 14.4.1 表分区管理的操作列表 332 14.4.2 表分区管理的操作实例 333 14.5 分区表联机重定义 336 14.6 创建索引分区 338 14.6.1 索引分区概念 338 14.6.2 本地索引分区 338 14.6.3 全局索引分区 340 14.7 管理索引分区 340 14.7.1 索引分区管理的操作列表 341 14.7.2 索引分区管理的操作实例 341 14.8 查看分区信息 341 14.9 本章小结 342 第15章 用户管理与安全 343 本章将介绍Oracle系统中的用户管理、权限控制、角色、资源及数据库的审计等方面的内容。 15.1 创建与管理用户账户 343 15.1.1 配置身份验证 343 15.1.2 创建用户的语法 343 15.1.3 创建用户实例 344 15.1.4 修改用户语法与实例 345 15.1.5 删除用户 347 15.2 权限管理 347 15.2.1 权限概述 347 15.2.2 授予系统权限 347 15.2.3 系统权限收回 348 15.2.4 授予对象权限 349 15.2.5 对象权限回收 349 15.2.6 用户与权限查询 350 15.3 角色管理 350 15.3.1 角色概述 351 15.3.2 预定义的Oracle系统角色 351 15.3.3 角色创建与角色授权 353 15.3.4 角色生效/失效 355 15.3.5 角色与权限的查询 355 15.4 资源配置PROFILE 356 15.4.1 PROFILE概述 356 15.4.2 创建PROFILE语法 357 15.4.3 创建PROFILE实例 359 15.4.4 修改资源配置PROFILE 361 15.4.5 显示资源配置PROFILE信息 362 15.5 数据库审计 362 15.5.1 审计概念 362 15.5.2 审计环境设置 362 15.5.3 登录审计 364 15.5.4 数据活动审计 364 15.5.5 对象审计 365 15.5.6 除审计数据 365 15.5.7 查询审计信息 366 15.6 本章小结 366 第16章 数据完整性和数据约束 367 本章介绍了与数据库完整性和一致性有关的重要概念:事务、锁、约束等。 16.1 什么是事务 367 16.2 数据并行性和一致性 368 16.2.1 数据并行性和一致性概述 369 16.2.2 Oracle如何管理数据并行和一致性 369 16.3 锁 372 16.3.1 锁的功能、分类及类型 373 16.3.2 表锁和事务锁 376 16.3.3 检测和解决锁冲突 376 16.3.4 实例分析 379 16.4 数据完整性 381 16.4.1 数据完整性概述 381 16.4.2 完整性约束 382 16.4.3 完整性约束类型 383 16.4.4 约束检验机制 387 16.4.5 约束状态 388 16.5 本章小结 390 第17章 Oracle 11g Enterprise Manager简介 391 Oracle Enterprise Manager是一个功能全面的Oracle图形界面管理工具。自从推出到现在已经有多个版本了,每个新版本都比前一个版本功能更强。目前Oracle 11g企业管理器简称EM(业内常叫OEM——企业管理器),它是初学者管理Oracle系统的最佳伴侣,本章简单介绍企业管理器的安装配置和使用方法。 17.1 Oracle 11g EM简单介绍 391 17.2 Oracle 11g EM安装配置 392 17.2.1 安装选择说明 392 17.2.2 客户化安装 392 17.2.3 设置与安装数据库控制 393 17.2.4 启动Oracle 11g EM 393 17.2.5 登录到Oracle 11g EM 394 17.3 用Oracle 11g EM管理Oracle系统 395 17.3.1 数据库配置管理 396 17.3.2 方案管理 396 17.3.3 数据文件管理 397 17.3.4 数据库用户管理 398 17.4 用EM维护Oracle系统 400 17.4.1 执行导出操作 400 17.4.2 管理(本地)表空间 403 17.4.3 浏览预警文件信息 404 17.5 用Oracle 11g EM进行性能调整 405 17.5.1 查看顶级活动 405 17.5.2 监视Oracle实例是否存在锁 406 17.6 本章小结 406 第五部分 Oracle数据库优化 第18章 Oracle系统调整 408 本章主要介绍了与Oracle性能优化有关的初始化参数的设置及内存区域的调整。Oracle性能优化包括的内容和技巧很多,限于篇幅这里只做简单的介绍。 18.1 Oracle初始化参数文件 408 18.1.1 Oracle的系统参数 408 18.1.2 初始化参数文件SPFILE 408 18.1.3 Oracle 11g新增加和淘汰参数 409 18.2 Oracle动态视图 409 18.3 Oracle SGA调整 412 18.3.1 理解内存分配 412 18.3.2 调整日志缓冲区分配 412 18.3.3 调整共享池分配 414 18.3.4 调整数据库缓冲区 417 18.3.5 SGA调整建议 417 18.4 排序区调整 417 18.4.1 排序区与其他内存区的关系 418 18.4.2 理解排序活动 418 18.4.3 监视排序活动 419 18.4.4 专用模式下排序区的调整 419 18.4.5 共享模式下排序区的调整 421 18.5 Oracle 11g中的自动内存优化功能 422 18.6 本章小结 422 第19章 Oracle SQL语句优化 423 SQL的优化主要与数据库开发人员及应用程序开发人员能否写出高效的SQL语句有关系。其实大多数性能问题往往都是跟SQL效率的低下有很大的关系。本章给大家介绍了编写SQL语句的一些最基本的技巧和需要注意的问题,以及SQL优化器及Oracle 11g中一些SQL优化工具。 19.1 常用的SQL技巧 423 19.1.1 不要用“*”代替所有列名 423 19.1.2 用TRUNCATE代替DELETE 423 19.1.3 在确保完整性的情况下多用COMMIT语句 424 19.1.4 尽量减少表的查询次数 424 19.1.5 用NOT EXISTS替代NOT IN 425 19.1.6 用EXISTS替代IN 425 19.1.7 用EXISTS替代DISTINCT 425 19.1.8 有效利用共享游标 425 19.1.9 以合理的方式使用函数 426 19.2 表的连接方法 427 19.2.1 选择FROM表的顺序 427 19.2.2 驱动表的选择 428 19.2.3 WHERE子句的连接顺序 428 19.3 有效使用索引 428 19.3.1 何时使用索引 429 19.3.2 索引列和表达式的选择 429 19.3.3 选择复合索引主列 429 19.3.4 避免对大表的全表扫描 430 19.3.5 监视索引是否被使用 430 19.3.6 影响索引有效使用的因素 431 19.4 Oracle的优化器与执行计划 431 19.4.1 优化器概念 431 19.4.2 运行EXPLAIN PLAN 432 19.4.3 Oracle 11g中SQL执行计划的管理 432 19.5 Oracle 11g中的执行计划管理 435 19.5.1 执行计划管理的工作原理 435 19.5.2 执行计划管理的实例测试 437 19.6 Oracle 11g中的数据库重演和SQL重演 439 19.6.1 数据库重演 439 19.6.2 SQL重演 439 19.7 Oracle的性能顾问 440 19.7.1 Advisor Central 440 19.7.2 SQL调优顾问 440 19.7.3 SQL访问顾问 440 19.8 本章小结 441 第六部分 Oracle 11g数据库的备份与恢复 第20章 备份与恢复 444 本章介绍了数据库备份与恢复的概念、分类、方法等基本常识。读者通过本章的学习能够对数据库备份和恢复有一个总体的了解,同时还介绍了Oracle 11g中备份和恢复的最新特性。 20.1 备份与恢复概述 444 20.2 备份分类与恢复分类 445 20.2.1 备份分类 445 20.2.2 恢复分类 446 20.3 备份与恢复方法 447 20.4 Oracle 11g的备份和恢复特性 448 20.5 本章小结 449 第21章 RMAN工具的使用 450 本章介绍了Oracle推荐的备份工具RMAN,包括RMAN的基本配置、恢复目录的介绍、通道分配,以及相关的备份和恢复命令、各种不同的备份方法等。RMAN涉及的知识点很多,希望大家多做一些备份和恢复的试验,加深对RMAN的理解。 21.1 RMAN简介 450 21.2 RMAN资料档案库/恢复目录/控制文件 451 21.3 创建恢复目录 451 21.4 RMAN与数据库的连接 453 21.4.1 与目标数据库的连接 453 21.4.2 与恢复目录的连接 453 21.5 注册数据库 454 21.5.1 注册目标数据库 454 21.5.2 实例演示 454 21.6 通道分配 455 21.6.1 通道概述 455 21.6.2 RUN命令介绍 455 21.6.3 自动通道配置 456 21.6.4 手动通道配置 457 21.6.5 显示通道配置参数 458 21.6.6 设置通道控制参数 458 21.7 使用BACKUP命令生成备份集 460 21.7.1 备份集与备份片 460 21.7.2 BACKUP命令语法 460 21.7.3 备份文件的存储格式 461 21.7.4 BACKUP备份实例 462 21.7.5 BACKUP的冷备份与热备份 464 21.8 使用COPY与BACK AS COPY命令 464 21.8.1 COPY命令语法 464 21.8.2 COPY备份实例 465 21.8.3 BACKUP AS COPY命令 466 21.9 备份 467 21.9.1 压缩备份 467 21.9.2 完全备份与增量备份 467 21.9.3 查看备份信息 469 21.10 使用RMAN恢复数据库 470 21.10.1 RESTORE命令 470 21.10.2 RECOVER命令 470 21.10.3 实例解析 470 21.11 本章小结 472 第22章 Oracle闪回技术(Flashback) 473 本章主要讲述了数据库的闪回技术,闪回是数据库进行逻辑恢复的一个快捷工具。本章对Oracle 11g在闪回方面的最新技术,闪回数据归档,也进行了详细介绍。 22.1 闪回技术概述 473 22.2 闪回恢复区 474 22.2.1 闪回恢复区的作用 474 22.2.2 配置闪回恢复区 474 22.2.3 闪回恢复区的文件保留策略 476 22.2.4 使用闪回恢复区 476 22.2.5 与闪回恢复区有关的视图 477 22.3 闪回数据库 477 22.3.1 闪回数据库概述 477 22.3.2 配置闪回数据库 478 22.3.3 使用闪回数据库 480 22.3.4 与闪回数据库有关的视图 481 22.4 闪回表 481 22.4.1 闪回表概念 481 22.4.2 使用闪回表 483 22.5 闪回丢弃 487 22.5.1 回收站概念 487 22.5.2 使用回收站 487 22.5.3 回收站与空间利用 489 22.6 闪回版本查询 491 22.6.1 闪回版本查询概念 491 22.6.2 使用闪回版本查询 491 22.7 闪回事务查询 493 22.7.1 闪回事务查询概念 493 22.7.2 使用闪回事务查询 494 22.8 闪回数据归档 495 22.8.1 闪回数据归档概念 495 22.8.2 闪回数据归档区 496 22.8.3 使用闪回数据归档 497 22.8.4 清除闪回数据归档区数据 500 22.8.5 与闪回数据归档有关的视图 500 22.9 本章小结 501 第23章 使用OEM向导备份和恢复数据库 502 本章介绍了如何使用OEM备份和恢复向导来备份和恢复数据库。对于数据库初学者而言,使用EM备份和恢复向导会使操作更加直观。 23.1 设置首选身份证明 502 23.2 配置备份设置 505 23.3 调度备份 507 23.4 管理当前备份 509 23.5 配置恢复设置 511 23.6 执行恢复 512 23.7 本章小结 513 第24章 逻辑备份及数据导入/导出 514 本章着重介绍了在数据导入/导出时常用的数据泵技术EXPDP/IMPDP,以及传统的EXP/IMP导入/导出工具。 24.1 数据泵技术概述 514 24.2 创建目录对象 515 24.3 使用Data Pump导出数据 516 24.3.1 Data Pump导出说明 516 24.3.2 基于命令行数据泵导出实例 516 24.3.3 基于DBMS_DATAPUMP数据泵导出实例 518 24.4 使用Data Pump导入数据 519 24.4.1 Data Pump导入说明 520 24.4.2 基于命令行数据泵导入实例 521 24.4.3 基于DBMS_DATAPUMP数据泵导入实例 521 24.5 监控Data Pump作业进度 522 24.6 EXP/IMP导出/导入数据 523 24.6.1 EXP/IMP概要说明 523 24.6.2 EXP导出实例 523 24.6.3 IMP导入实例 524 24.6.4 字符集冲突问题 525 24.7 本章小结 526 第七部分 Oracle 11g数据库集群技术与高可用性 第25章 Oracle RAC应用 528 本章主要讲述了RAC的基本概念、系统架构,以及安装、运行、管理RAC所需要的工具,并且通过具体的实例演示了RAC集群数据库的安装。 25.1 RAC概述 528 25.2 Oracle集群件 528 25.3 RAC硬件架构 529 25.4 文件系统和卷管理 529 25.5 OCR与投票磁盘 530 25.6 虚拟IP地址(VIP) 530 25.7 集群校验工具 530 25.8 扩展的远距离集群上的RAC 530 25.9 系统扩展与并行 531 25.10 管理集群数据库 531 25.10.1 企业管理器 531 25.10.2 以滚动的方式给应用打补丁 532 25.11 集群11g R2增强 532 25.12 RAC的安装与配置 534 25.12.1 共享存储方案说明 534 25.12.2 软件包检查 535 25.12.3 创建用户和组及相关配置 536 25.12.4 设置主机名称和网关 538 25.12.5 Linux系统参数配置 539 25.12.6 安装并配置ASM驱动 541 25.12.7 安装cvuqdisk软件包 543 25.12.8 安装grid infrastructure 543 25.12.9 创建ASM磁盘组 555 25.13 安装Oracle数据库软件 558 25.14 使用DBCA创建数据库 563 25.15 TNS配置 569 25.16 检查RAC集群数据库的状态 571 25.17 使用Direct NFS Client 574 25.18 Oracle RAC日常维护 574 25.19 本章小结 575 第26章 自动存储管理(ASM) 576 本章主要介绍了Oracle 11g数据库在ASM方面的新功能。 26.1 ASM概述 576 26.2 Oracle 11g中ASM都有哪些新特征 576 26.2.1 快速重新同步(ASM Fast Mirror Resync) 576 26.2.2 ASM滚动升级 577 26.2.3 为ASM管理员新增了SYSASM权限和OSASM操作系统用户组 579 26.2.4 ASM可扩展性和性能的增强 579 26.2.5 新的ASM命令行(ASMCMD)命令和选项 580 26.3 磁盘组兼容性方面新的属性 580 26.3.1 磁盘组兼容性概要 580 26.3.2 COMPATIBLE.ASM和COMPATIBLE.RDBMS 581 26.3.3 设置磁盘组兼容性的方法 581 26.4 ASM优先镜像读取 582 26.4.1 优先镜像读取新特征概要 582 26.4.2 配置和管理优先读取失败组 582 26.5 ASM快速再平衡 583 26.6 Oracle自动存储管理集群文件系统(ACFS) 583 26.6.1 Oracle ASM动态卷管理器 584 26.6.2 Oralce ACFS快照 585 26.6.3 Oracle ASM配置助手(ASMCA) 585 26.6.4 ASMCMD增强 585 26.6.5 智能数据布局 586 26.6.6 为磁盘驱动器指定扇区大小 586 26.6.7 磁盘组更名 586 26.6.8 Oracle ASM文件访问控制 586 26.6.9 Oracle ASM上的Oracle Cluster Registry和Voting文件 586 26.6.10 Oracle Restart 586 26.6.11 支持Oracle ACFS的Oracle企业管理器 586 26.7 本章小结 587 第27章 容灾与数据卫士 588 本章主要介绍了Oracle 11g Data Guard的概述与入门,如何创建物理与逻辑备用数据库、日志传输服务、日志应用服务、角色管理,以及使用RMAN来备份和恢复文件,在基础知识之上涉及Oracle 11g的一些新的相关特性,如Oracle 数据库企业版新的数据库选件Oracle Active Data Guard、实时查询功能以及压缩的日志传出,同时读取和恢复单个备用数据库,对生产数据库的报告、备份、测试和“滚动”升级。 27.1 Oracle 数据卫士概述 588 27.1.1 数据卫士简介 588 27.1.2 数据卫士体系结构 589 27.1.3 数据卫士配置 590 27.1.4 数据卫士服务 591 27.1.5 数据卫士代理 592 27.1.6 数据卫士保护模式 594 27.1.7 数据卫士进程结构 595 27.1.8 数据卫士功能 596 27.1.9 Oracle 数据卫士提供的好处 597 27.1.10 数据卫士和其他的相关技术 598 27.2 数据卫士入门 599 27.2.1 备用数据库类型 599 27.2.2 管理数据卫士配置的用户接口 602 27.2.3 数据卫士操作的前提条件 606 27.2.4 备用数据库目录结构 607 27.2.5 在线Redo日志、归档Redo日志和备用Redo日志 609 27.3 创建物理备用数据库 610 27.3.1 为备用数据库准备主数据库 610 27.3.2 实施创建操作 613 27.3.3 创建后的步骤 618 27.4 创建逻辑备用数据库 618 27.4.1 准备工作 618 27.4.2 实施创建操作 620 27.4.3 创建后的步骤 624 27.5 数据保护模式 624 27.5.1 数据卫士保护模式 624 27.5.2 设置主数据库的保护模式 625 27.6 日志传输服务 626 27.6.1 概述 626 27.6.2 配置Redo传输服务 627 27.6.3 级联Redo传输目的地 632 27.6.4 监控Redo传输服务 635 27.7 应用服务 639 27.7.1 概述 639 27.7.2 日志应用服务配置选项 642 27.7.3 将Redo数据应用到物理备用数据库 644 27.7.4 将Redo数据应用到逻辑备用数据库 645 27.8 角色转换 646 27.8.1 角色转换简介 646 27.8.2 包含物理备用数据库的角色转换 651 27.8.3 向逻辑备用数据库的角色转换 656 27.8.4 在故障转移后使用闪回技术 662 27.9 管理物理与快照备用数据库 665 27.9.1 启动与关闭物理备用数据库 665 27.9.2 打开物理备用数据库 666 27.9.3 在物理备用数据库上需要手工干预的主数据库变化 669 27.9.4 通过OPEN RESETLOGS语句进行还原 675 27.9.5 监控主、物理备用和快照备用数据库 676 27.9.6 优化Redo应用 678 27.9.7 管理快照备用数据库 678 27.10 管理逻辑备用数据库 679 27.10.1 概览SQL应用架构 680 27.10.2 控制用户访问逻辑备用数据库上的表格 683 27.10.3 管理与监控和逻辑备用数据库相关的视图 684 27.10.4 监控逻辑备用数据库 689 27.10.5 定制逻辑备用数据库 692 27.10.6 在逻辑备用数据库环境中管理特定工作 698 27.10.7 优化逻辑备用数据库 703 27.10.8 在逻辑备用数据库环境中备份与还原 708 27.11 使用RMAN来备份和恢复文件 709 27.11.1 关于数据卫士配置中的RMAN文件管理 710 27.11.2 关于数据卫士环境中的RMAN配置 711 27.11.3 推荐的RMAN与Oracle数据库配置 711 27.11.4 备份过程 714 27.11.5 在数据卫士环境下注册与注销数据库 717 27.11.6 数据卫士环境下的报告 717 27.11.7 数据卫士环境下的备份维护 717 27.11.8 数据卫士环境下的还原脚本 719 27.11.9 例外的备份环境 723 27.11.10 运用RMAN增量备份来滚动前移物理备用数据库 724 27.12 运用SQL应用升级Oracle 数据库 726 27.12.1 运用SQL应用滚动升级的好处 727 27.12.2 运用SQL应用执行滚动升级的前提条件 727 27.12.3 升级操作中使用的数据与惯例 727 27.12.4 通过创建新逻辑备用数据库执行滚动升级 728 27.12.5 用已有的逻辑备用数据库执行滚动升级 730 27.12.6 用已有的物理备用数据库执行滚动升级 735 27.13 数据卫士案例分享 737 27.13.1 在故障转移之后配置逻辑备用数据库 737 27.13.2 用闪回数据库把失败的主数据库转换成备用数据库 739 27.13.3 在输入OPEN RESETLOGS语句之后使用闪回数据库 742 27.13.4 在指定NOLOGGING从句之后进行还原 744 27.13.5 创建使用OMF或Oracle ASM的备用数据库 746 27.13.6 在主数据库上从Lost-write错误进行还原 748 27.13.7 用RMAN备份把失败的主数据库转换成备用数据库 749 27.13.8 在不重建物理备用数据库的情况下变更主数据库的字符集 753 27.14 本章小结 753 第28章 故障诊断 754 本章主要介绍了故障诊断的一些方法和工具,并提出了相关建议。 28.1 数据库挂死管理器 754 28.1.1 IPS事件打包服务 754 28.1.2 自动诊断知识库(ADR) 755 28.1.3 故障处理的工作流 756 28.1.4 增强网络诊断 756 28.1.5 增强OCI诊断 756 28.1.6 智能解决方案 756 28.2 SQL修复建议器 757 28.3 问题避免 757 28.3.1 自动健康监控 757 28.3.2 健康监控 758 28.4 支撑平台 759 28.5 如何得到故障信息 759 28.6 企业管理器Support Workbench支持ASM 760 28.7 本章小结 760 第29章 真正应用测试 761 本章主要介绍了Oracle 11g新增功能——真正应用测试的原理和步骤,包括数据库重放和SQL性能分析器。 29.1 数据库重放 761 29.2 SQL性能分析器 768 29.2.1 SQL性能分析器方法论 769 29.2.2 运行SQL性能分析器 770 29.3 本章小结 772 第八部分 商业智能与数据仓库 第30章 ETL相关的功能 774 本章主要介绍了ETL的基础概念,并描述了与ETL相关的几个Oracle特性,包括变化数据捕捉、物化视图、查询重写、OWB等。 30.1 概 述 774 30.2 变化数据捕捉 774 30.2.1 发布变化数据 778 30.2.2 订阅变化数据 785 30.2.3 Oracle 11g变化数据捕捉功能增强 787 30.3 物化视图 788 30.4 查询重写 790 30.4.1 概述 790 30.4.2 查询重写的先决条件 790 30.4.3 保证查询重写有效 791 30.4.4 与查询重写相关的初始化参数 791 30.4.5 控制查询重写 792 30.4.6 查询重写的准确性 792 30.4.7 激活查询重写的权限 793 30.4.8 示例方案和物化视图 793 30.4.9 如何验证发生过查询重写 794 30.4.10 查询重写示例 795 30.4.11 内嵌视图 795 30.4.12 远程表 796 30.5 Oracle Warehouse Builder 796 30.5.1 OWB方法论 797 30.5.2 OWB的架构图 800 30.5.3 安装与配置 801 30.5.4 数据转换功能 802 30.5.5 缓慢变化维 803 30.6 与数据仓库有关的SQL操作增强 803 30.7 本章小结 804 第31章 多维数据库 805 本章主要介绍了Oracle OLAP多维数据库的基础知识,包括OLAP的访问和创建,并且详细说明了Oracle OLAP的管理工具AWM。本章最后介绍了11g中OLAP新特性。 31.1 OLAP选件概述 805 31.2 OLAP对外接口 806 31.2.1 Java OLAP API 807 31.2.2 关系视图与SQL查询 808 31.2.3 OLAP DML与PL/SQL包 808 31.3 分析工作空间管理器 809 31.3.1 简化维模型的构建 810 31.3.2 实施物理存储模型 810 31.3.3 映射关系源 812 31.3.4 管理生命周期 813 31.3.5 保存模型设计 813 31.4 分析工作区管理器演示 813 31.4.1 授权 814 31.4.2 创建分析工作区 814 31.4.3 创建维 815 31.4.4 创建多维数据集 818 31.4.5 加载和聚合数据 820 31.5 11gr1 OLAP增强功能 821 31.5.1 SQL优化器的增强 821 31.5.2 允许利用Java插件 821 31.5.3 分区和存储顾问(Advisors) 821 31.5.4 基于成本的汇总 822 31.5.5 立方脚本 822 31.5.6 数据库管理的立方刷新 823 31.5.7 自动重写到按照立方组织的物化视图 825 31.5.8 数据字典 825 31.5.9 计算模板 825 31.5.10 安全增强 825 31.6 本章小结 827 第32章 数据挖掘 828 本章主要介绍了Oracle数据挖掘的基础知识,包括数据挖掘方法论和Oracle数据库提供的主要挖掘算法,并介绍了11g中数据挖掘的新特性。 32.1 数据挖掘过程 828 32.2 监督式学习算法 830 32.2.1 朴素贝叶斯 830 32.2.2 自适应贝叶斯网络 830 32.2.3 支持向量机 831 32.2.4 属性重要性排序 831 32.2.5 决策树 831 32.3 无监督式学习算法 831 32.3.1 聚类 832 32.3.2 关联规则 832 32.3.3 特征选择 832 32.3.4 文本挖掘和非结构化数据 833 32.4 数据挖掘接口 833 32.5 数据挖掘功能增强 834 32.5.1 自动和嵌入的数据转换 834 32.5.2 数据挖掘方案对象 836 32.5.3 数据挖掘的Java API 837 32.5.4 广义线性模型 837 32.5.5 预测分析:PROFILE 837 32.5.6 SQL预测增强 837 32.5.7 新增视图 838 32.5.8 安全性 839 32.5.9 数据挖掘模型的升级 839 32.5.10 11g中不赞成使用的特性 839 32.5.11 不被支持的特性 840 32.6 本章小结 840 第九部分 非结构化数据库 第33章 空间数据库 842 本章主要介绍了Oracle 空间数据库的基础知识,包括矢量几何体数据和栅格数据的存取方法,并介绍了11g中空间数据库的新特性。 33.1 使空间数据库概述 842 33.2 几何实体数据 843 33.2.1 几何实体类型 843 33.2.2 空间数据模型 843 33.2.3 SDO_GEOMETRY 844 33.2.4 几何实体的元数据 850 33.2.5 空间R树索引 851 33.2.6 过滤和空间关系 852 33.2.7 空间操作符 854 33.2.8 SDO_GEOM包 856 33.2.9 空间聚集函数 857 33.2.10 空间参考坐标系 858 33.2.11 其他 863 33.3 Oracle Spatial 选件 863 33.4 GeoRaster数据 864 33.5 MapViewer 867 33.6 空间数据库11gr1增强特性 868 33.7 空间数据操作演示 870 33.8 本章小结 873 第34章 XML数据库 874 本章主要介绍了Oracle XML数据库的基础知识,包括XMLType的存储方式和创建方法,并介绍了常用的XML存取操作,用示例说明了XML DB的开发。 34.1 Oracle XML DB概述 874 34.1.1 XMLType存储 874 34.1.2 XML DB资料库 875 34.1.3 协议结构 876 34.1.4 API访问 876 34.2 XML DB开发 877 34.2.1 XMLType类型 877 34.2.2 存储索引 880 34.2.3 XML模式 880 34.2.4 注册XML模式 881 34.2.5 XML模式进化 883 34.2.6 XML DB应用开发工具 884 34.3 XML存取操作 884 34.3.1 XQuery 884 34.3.2 SQL/XML二元性 886 34.3.3 XML与关系数据互操作 887 34.3.4 XML运算符 887 34.3.5 XML DB维护工具 888 34.3.6 XML DB全文检索 889 34.3.7 XML DB 11gr1增强 889 34.4 Oracle XML DB示例 892 34.5 本章小结 896 第十部分 Oracle 11g数据库的其他新特性 第35章 Oracle 11g应用增强 898 本章主要介绍了Oracle 11g中一些主要的新增应用特性,包括结果缓存、执行计划管理、高级压缩和SQL方面的一些增强特性。 35.1 结果缓存 898 35.1.1 概述 898 35.1.2 应用演示 900 35.2 执行计划管理 907 35.2.1 概述 907 35.2.2 应用演示 909 35.3 高级压缩 910 35.3.1 概述 910 35.3.2 11g中新压缩特性 911 35.4 数据库控制 914 35.4.1 高级复制变革 915 35.4.2 ASM增强 915 35.4.3 转变管理者-同步与传播 915 35.4.4 增强数据库克隆 915 35.4.5 增强数据库配置(ECM收集) 915 35.4.6 改进数据库主页和性能页 915 35.4.7 增强的自适应测度(metric)阈值 916 35.4.8 融合需求(Fusion) 917 35.4.9 管理Oracle文本索引 917 35.4.10 迁移数据库到ASM——企业管理器中的增强 920 35.4.11 增强存储/审计报表和测度 920 35.4.12 增强存储、计划、安全和配置 920 35.4.13 增强等待事件详述 921 35.4.14 工作空间管理 921 35.5 整体数据库管理——真正应用集群的ADDM 921 35.6 LOBs增强 922 35.7 SQL增强 924 35.7.1 SQL指令 924 35.7.2 函数 941 35.7.3 其他增强 944 35.8 本章小结 945 第36章 高级数据管理 946 本章主要介绍了Oracle 11g增强的一些数据库管理和维护特性,并介绍了新增的信息生命周期管理的概念和使用方法。 36.1 增强高级管理特性 946 36.2 信息生命周期管理 949 36.2.1 信息生命周期管理概念 949 36.2.2 Oracle信息生命周期管理方案 950 36.2.3 信息生命周期管理实施 951 36.2.4 信息生命周期管理助手 953 36.2.5 在线数据归档的好处 957 36.3 本章小结 958 第37章 数据库升级 959 本章主要介绍了Oracle数据库升级为11g的方法和步骤,并说明了升级完成后的任务。 37.1 概述 959 37.2 升级过程 960 37.3 11g新增的后台进程 961 37.4 升级准备 962 37.5 升级到新版本 963 37.6 升级后的任务 964 37.7 11gr1兼容性和互操作性问题 964 37.8 数据库降级 971 37.9 本章小结 972 参考文献 973
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值