内容简介
第一篇 基础知识篇
第1章开启数据库之门
1.1认识数据库
1.1.1数据库的发展史
1.1.2数据库系统的组成
1.1.3什么是数据库管理系统
1.2研究关系型数据库的基本理论
1.2.1关系型数据库与数据库管理系统
1.2.2关系型数据库的E-R模型
1.2.3关系型数据库的设计范式
1.3 小结
1.4习题
第2章 踏上Oracle的征程
2.1 Oracle的成长历程
2.2展示Oracle 11g的新特性
2.3安装与卸载Oracle 11g
2.3.1 Oracle 11g的安装
2.3.2 Oracle 11g的卸载
2.4 Oracle 11g的管理工具
2.4.1 SQL*Plus工具
2.4.2 Oracle企业管理器
2.4.3数据库配置助手
2.5启动与关闭数据库实例
2.5.1启动数据库实例
2.5.2关闭数据库实例
2.6上机实践
2.6.1通过DBCA创建一个数据库
2.6.2 以ABORT方式关闭数据库
2.7 小结
2.8 习题
第3章 Oracle 11g身世解密——体系结构
3.1 简述Oracle 11g体系结构
3.2解密逻辑存储结构
3.2.1 数据块(Data Blocks)
3.2.2数据区(Extent)
3.2.3段(Segment)
3.2.4表空间(TableSpace)
3.3剖析物理存储结构
3.3.1数据文件
3.3.2控制文件
3.3.3 日志文件
3.3.4服务器参数文件
3.3.5密码文件、警告文件和跟踪文件
3.4剖析Oracle 11g服务器结构
3.4.1 系统全局区(SGA)
3.4.2程序全局区(PGA)
3.4.3前台进程
3.4.4 后台进程
3.5窥探数据字典的秘密
3.5.1 Oracle数据字典简介
3.5.2 Oracle常用数据字典
3.6上机实践
3.6.1查询数据库中所有段的存储空间
3.6.2查询数据库所使用的数据文件
3.7小结
3.8 习题
第4章发号施令——SQL*Plus命令
4.1 SQL*Plus与数据库的交互
4.2设置SQL*Plus的运行环境
4.2.1 SET命令简介
4.2.2 使用SET命令设置运行环境
4.3解读常用的SQL*Plus命令
4.3.1 HELP命令
4.3.2 DESCRIBE命令
4.3.3 SPOOL命令
4.3.4其他常用命令
4.4格式化查询结果
4.4.1 COLUMN命令
4.4.2 TTITLE和BTITLE命令
4.5上机实践
4.5.1 使用set newpage命令修改指定数量的空行
4.5.2使用TEXT值列替换NULL值列
4.6 小结
4.7 习题
第5章神兵利器——SQL语言的基本操作
5.1 SQL语言简介
5.1.1 SQL语言的特点
5.1.2 SQL语言的分类
5.1.3 SQL语言的编写规则
5.2认识用户模式
5.2.1模式与模式对象
5.2.2示例模式SCOTT
5.3检索数据
5.3.1简单查询
5.3.2筛选查询
5.3.3 分组查询
5.3.4排序查询
5.3.5多表关联查询
5.4操作数据库
5.4.1插入数据(INSERT语句)
5.4.2更新数据(UPDATE语句)
5.4.3删除数据(DELETE语句和TRUNCATE语句)
5.5上机实践
5.5.1统计某一个部门的雇员的最高和最低工资
5.5.2创建employees表的一个副本
5.6 小结
5.7习题
第6章更上一层楼——SQL语言的复杂操作
6.1 Oracle常用系统函数
6.1.1字符类函数
6.1.2数字类函数
6.1.3 日期和时间类函数
6.1.4转换类函数
6.1.5聚合类函数
6.2子查询的用法
6.2.1什么是子查询
6.2.2单行子查询
6.2.3多行子查询
6.2.4关联子查询
6.3事务处理
6.3.1事务概述
6.3.2操作事务
6.4上机实践
6.4.1把系统日期格式转换为“YYYYMMDD”格式
6.4.2查询工资小于平均工资的员工信息
6.5 小结
6.6习题
第二篇 核心技术篇
第7章 必须知道的PL/SQL编程
7.1 什么是PL/SQL
7.1.1 PL/SQL块结构
7.1.2代码注释和标识符
7.2数据类型、变量和常量
7.2.1基本数据类型
7.2.2 特殊数据类型
7.2.3定义变量和常量
7.3控制程序走向——流程控制语句
7.3.1添加选择语句
7.3.2循环控制语句
7.4 PL/SQL游标
7.4.1 设置显示游标
7.4.2游标的常用属性
7.4.3 设置隐式游标
7.4.4通过for语句遍历游标
7.5 PL/SQL异常处理
7.5.1 预定义异常
7.5.2自定义异常
7.6上机实践
7.6.1判断用户是否可以申请退休
7.6.2使用游标读取员工信息
7.7 小结
7.8习题
第8章 自给自足——创建存储过程、函数、触发器和程序包
8.1 PL/SQL程序块——存储过程
8.1.1存储过程的创建
8.1.2存储过程的几种模式参数
8.1.3熟悉IN参数的默认值
8.2 函数的使用
8.2.1函数的创建
8.2.2函数的调用
8.2.3函数的删除
8.3特殊的存储过程——触发器
8.3.1触发器概述
8.3.2语句级触发器
8.3.3行级触发器
8.3.4替换触发器
8.3.5用户事件触发器
8.4程序包的使用
8.4.1程序包的规范
8.4.2程序包的主体
8.5 上机实践
8.5.1调用存储过程计算平方或平方根
8.5.2通过程序包调用存储过程和函数
8.6 小结
8.7习题
第9章 宏观调控——控制文件和日志文件
9.1管理控制文件
9.1.1控制文件概述
9.1.2控制文件的多路复用
9.1.3控制文件的创建
9.1.4备份和恢复控制文件
9.1.5控制文件的删除操作
9.1.6查询控制文件的信息
9.2管理重做日志文件
9.2.1重做日志文件概述
9.2.2 增加日志组及其成员
9.2.3重做日志的删除
9.2.4更改重做日志文件的位置或名称
9.2.5查看重做日志文件信息
9.3管理归档日志文件
9.3.1 日志模式分类
9.3.2管理归档操作
9.3.3 设置归档日志文件位置
9.3.4查看归档日志信息
9.4 上机实践
9.4.1为数据库实例添加重做日志文件组
9.4.2查看并修改数据库归档模式
9.5小结
9.6习题
第10章 数据核心区——表空间和数据文件
10.1表空间与数据文件的关系
10.2 Oracle 11g的默认表空间
10.2.1 Oracle数据字典——SYSTEM表空间
10.2.2 SYSTEM的助手——SYSAUX表空间
10.3表空间的创建
10.3.1创建表空间的语法
10.3.2通过本地化管理方式创建表空间
10.3.3 通过段空间管理方式创建表空间
10.3.4创建非标准块表空间
10.3.5建立大文件表空间
10.4维护表空间与数据文件
10.4.1 设置默认表空间
10.4.2更改表空间的状态
10.4.3重命名表空间
10.4.4删除表空间
10.4.5维护表空间中的数据文件
10.5撤销表空间的使用
10.5.1撤销表空间的作用
10.5.2撤销表空间的初始化参数
10.5.3关于撤销表空间的几种操作
10.6 临时表空间的使用
10.6.1临时表空间的创建
10.6.2查询临时表空间的信息
10.6.3 临时表空间组的使用
10.7上机实践
10.7.1创建并设置默认永久表空间
10.7.2创建并设置默认临时表空间
10.8 小结
10.9习题
第11章数据之家——数据表对象
11.1数据表概述
11.2数据表的创建
11.2.1数据表的逻辑结构
11.2.2创建数据表
11.2.3 庖丁解牛——数据表的特性
11.3管理维护数据表
11.3.1增加和删除字段
11.3.2修改字段
11.3.3重命名数据表
11.3.4改变表空间和存储参数
11.3.5删除数据表
11.3.6修改数据表的状态
11.4数据的完整性和约束性
11.4.1非空约束
11.4.2主键约束
11.4.3 唯一性约束
11.4.4外键约束
11.4.5禁用约束
11.4.6激活约束
11.4.7删除约束
11.5上机实践
11.5.1将创建的数据表置于指定的表空间中
11.5.2为指定的数据表创建主键约束
11.6 小结
11.7习题
第12章 不可不看的其他数据对象
12.1 索引对象——快速查找记录
12.1.1 索引概述
12.1.2创建索引
12.1.3 对索引进行修改
12.1.4索引的删除操作
12.1.5显示索引信息
12.2视图对象——存储查询的虚拟表
12.2.1创建视图
12.2.2视图的管理操作
12.3 同义词对象——保护对象的安全
12.4 序列对象——提供唯一的主键值
12.4.1创建序列
12.4.2 序列的管理操作
12.5上机实践
12.5.1 创建数据表并添加索引
12.5.2通过序列对象为数据表添加数据
12.6小结
12.7习题
第13章 数据检索目录——表和索引的分区
13.1 分区技术概述
13.2常见的几种表分区
13.2.1 RANGE分区——范围分区
13.2.2 HASH分区——散列分区
13.2.3 LIST分区——列表分区
13.2.4 多重复用——组合分区
13.2.5范围分区的升级——Interval分区
13.3关于表分区的策略
13.4表分区的管理
13.4.1添加表分区
13.4.2合并表分区
13.4.3删除表分区
13.4.4并入表分区
13.5索引分区的使用
13.5.1索引分区概述
13.5.2本地索引分区的使用
13.5.3全局索引分区的使用
13.6索引分区的管理
13.6.1 索引分区管理的操作列表
13.6.2索引分区管理的实际操作
13.7上机实践
13.7.1 根据指定字段创建多个列表分区
13.7.2根据表分区创建本地索引分区
13.8 小结
13.9习题
第14章 居安思危——管理用户与权限
14.1 了解用户与方案
14.2创建与管理用户
14.2.1身份验证
14.2.2创建用户
14.2.3修改用户
14.2.4删除用户
14.3用户权限管理
14.3.1了解权限
14.3.2授权操作
14.3.3 回收系统权限
14.3.4对象授权
14.3.5回收对象权限
14.3.6查询用户与权限
14.4角色管理
14.4.1认识角色
14.4.2预定义角色
14.4.3创建角色与授权
14.4.4管理角色
14.4.5角色与权限查询
14.5 资源配置PROFILE
14.5.1 什么是PROFILE
14.5.2使用PROFILE管理密码
14.5.3使用PROFILE管理资源
14.5.4 维护PROFILE文件
14.5.5显示PROFILE信息
14.6上机实践
14.6.1创建一个用户
14.6.2创建一个角色
14.7小结
14.8习题
第三篇 高级应用篇
第15章 合理优化Oracle系统
15.1 调整初始化参数
15.1.1 Oracle初始化参数分类
15.1.2 主要系统调优参数介绍
15.2 系统全局区(SGA)优化
15.2.1 解内存分配
15.2.2调整日志缓冲区
15.2.3调整共享池
15.2.4调整数据库缓冲区
15.2.5 SGA调优建议
15.3排序区优化
15.3.1排序区与其他内存区的关系
15.3.2 理解排序活动
15.3.3专用模式下排序区的调整
15.3.4共享模式下排序区的调整
15.4上机实践
15.4.1修改large_pool_size的值并查看修改结果
15.4.2查询高速缓存在调用阶段的“不命中数”
15.5小结
15.6习题
第16章 SQL语句的优胜劣汰
16.1 优化常规SQL语句
16.1.1建议不用“*”来代替所有列名
16.1.2 使用TRUNCATE代替DELETE
16.1.3在确保完整性的情况下多用COMMIT语句
16.1.4尽量减少表的查询次数
16.1.5用[NOT]EXISTS代替[NOT]IN
16.2优化表连接
16.2.1驱动表的选择
16.2.2 WHERE子句的连接顺序
16.3合理使用索引
16.3.1何时使用索引
16.3.2索引列和表达式的选择
16.3.3选择复合索引主列
16.3.4避免全表扫描大表
16.3.5监视索引是否被使用
16.4优化器的使用
16.4.1优化器的概念
16.4.2运行EXPLAIN PLAN
16.4.3 Oracle 11g中SQL执行计划的管理
16.5数据库和SQL重演
16.5.1数据库重演
16.5.2 SQL重演
16.6 Oracle的性能顾问
16.6.1 SQL调优顾问
16.6.2 SQL访问顾问
16.7上机实践
16.7.1使用TRUNCATE语句清空指定数据表
16.7.2监视主键索引是否被使用
16.8小结
16.9习题
第17章 安全保障——数据备份与恢复
17.1 了解备份与恢复
17.2 RMAN工具简介
17.2.1 RMAN组件
17.2.2 RMAN通道
17.2.3 RMAN命令
17.3使用RMAN工具实现备份
17.3.1 RMAN备份策略
17.3.2使用RMAN备份数据库文件和归档日志
17.3.3增量备份
17.4使用RMAN工具实现完全恢复
17.4.1恢复处于NOARCHIVELOG模式的数据库
17.4.2恢复处于ARCHIVELOG模式的数据库
17.5使用RMAN工具实现部分恢复
17.5.1基于时间的不完全恢复
17.5.2基于更改的不完全恢复
17.6上机实践
17.6.1使用RMAN工具备份表空间
17.6.2使用RMAN工具还原备份的表空间
17.7 小结
17.8习题
第18章 游刃有余——数据导出和导入
18.1数据泵技术概述
18.2使用EXPDP导出数据
18.2.1执行EXPDP命令
18.2.2 EXPDP命令参数
18.3使用IMPDP导入数据
18.3.1执行IMPDP命令
18.3.2 IMPDP命令参数
18.4使用SQL*Loader工具加载外部数据
18.4.1初识SQL*Loader工具
18.4.2加载多种格式的数据
18.5上机实践
18.5.1 使用EXPDP导出指定的数据表
18.5.2使用IMPDP导入指定的数据表
18.6 小结
18.7习题
第19章 穿越时空——闪回技术
19.1了解闪回技术
19.2闪回数据库技术
19.2.1闪回恢复区配置
19.2.2闪回数据库配置
19.2.3闪回数据库技术应用
19.3 闪回表技术
19.3.1 闪回表命令的语法
19.3.2 闪回表的应用
19.4 闪回丢弃技术
19.4.1回收站简介
19.4.2 回收站的应用
19.5其他闪回技术
19.5.1 闪回版本查询
19.5.2闪回事务查询
19.5.3闪回数据归档
19.6上机实践
19.6.1使用闪回丢弃还原已经drop掉的表
19.6.2使用闪回表命令清除记录
19.7 小结
19.8习题
第四篇 项目实战篇
第20章 基于Oracle数据库的企业人事管理系统
20.1需求分析
20.2系统设计
20.2.1 系统目标
20.2.2系统功能结构
20.2.3系统业务流程图
20.2.4系统编码规范
20.3 系统开发及运行环境
20.4数据库与数据表设计
20.4.1实体E-R图设计
20.4.2数据库逻辑结构设计
20.5系统文件夹组织结构
20.6公共模块设计
20.6.1编写Hibernate配置文件
20.6.2编写Hibernate持久化类和映射文件
20.6.3编写通过Hibernate操作持久化对象的常用方法
20.6.4创建用于特殊效果的部门树对话框
20.6.5创建通过部门树选取员工的面板和对话框
20.7 Hibernate关联关系的建立方法
20.7.1 建立一对一关联
20.7.2建立一对多关联
20.8主窗体设计
20.8.1实现导航栏
20.8.2实现工具栏
20.9人事管理模块设计
20.9.1实现上传员工照片功能
20.9.2实现组件联动功能
20.9.3 通过Java反射验证数据是否为空
20.10待遇管理模块设计
20.10.1 实现建立一个新的账套
20.10.2实现为新建的账套添加项目
20.10.3实现修改项目的金额
20.10.4实现统计报表
20.11系统维护模块设计
20.11.1实现修改名称的功能
20.11.2实现添加部门的功能
20.11.3实现删除现有部门的功能
20.12运行项目
20.13 开发常见问题与解决
20.14小结