第1篇 基础知识 3
第1章 Oracle 11g概述 3
1.1 Oracle发展史概述 4
1.2关系型数据库的基本理论 5
1.2.1关系型数据库与数据库管理系统 6
1.2.2关系型数据库的E-R模型 7
1.2.3关系型数据库的设计范式 8
1.3 Oracle 11g的新功能 11
1.4 Oracle 11g的安装与卸载 12
1.4.1 Oracle 11g的安装 12
1.4.2 Oracle 11g的卸载 18
1.5 Oracle 11g的管理工具 20
1.5.1 SQL*Plus工具 20
1.5.2 Oracle企业管理器 21
1.5.3数据库配置助手 22
1.6启动与关闭数据库实例 23
1.6.1启动数据库实例 23
1.6.2关闭数据库实例 25
1.7小结 27
1.8实践与练习 27
第2章 Oracle 11 g体系结构 29
2.1 Oracle 11 g体系结构概述 30
2.2逻辑存储结构 30
2.2.1数据块(Data Blocks) 31
2.2.2数据区(Extent) 32
2.2.3段(Segment) 32
2.2.4表空间(TableSpace) 33
2.3物理存储结构 34
2.3.1数据文件 35
2.3.2控制文件 36
2.3.3日志文件 37
2.3.4服务器参数文件 39
2.3.5密码文件、警告文件和跟踪文件 41
2.4 Oracle 11g服务器结构 43
2.4.1系统全局区(SGA) 43
2.4.2程序全局区(PGA) 45
2.4.3前台进程 46
2.4.4后台进程 47
2.5数据字典 50
2.5.1 Oracle数据字典概述 50
2.5.2 Oracle常用数据字典 50
2.6小结 52
2.7实践与练习 52
第3章 SQL*Plus命令 53
3.1 SQL*Plus与数据库的交互 54
3.2设置SQL*Plus的运行环境 54
3.2.1 SET命令概述 55
3.2.2使用SET命令设置运行环境 57
3.3常用SQL*Plus命令 61
3.3.1 HELP命令 61
3.3.2 DESCRIBE命令 62
3.3.3 SPOOL命令 64
3.3.4其他常用命令 65
3.4格式化查询结果 67
3.4.1 COLUMN命令 68
3.4.2 TTTTLE和BTITLE命令 70
3.5小结 72
3.6实践与练习 72
第4章 SQL语言基础 73
4.1 SQL语言概述 74
4.1.1 SQL语言的特点 74
4.1.2 SQL语言的分类 75
4.1.3 SQL语言的编写规则 75
4.2用户模式 76
4.2.1模式与模式对象 76
4.2.2实例模式SCOTT 77
4.3检索数据 78
4.3.1简单查询 78
4.3.2筛选查询 82
4.3.3分组查询 86
4.3.4排序查询 87
4.3.5多表关联查询 88
4.4 Oracle常用系统函数 92
4.4.1字符类函数 92
4.4.2数字类函数 95
4.4.3日期和时间类函数 97
4.4.4转换类函数 98
4.4.5聚合类函数 99
4.5子查询的用法 99
4.5.1子查询 100
4.5.2单行子查询 101
4.5.3多行子查询 101
4.5.4关联子查询 102
4.6操作数据库 103
4.6.1插入数据(INSERT语句) 103
4.6.2更新数据(UPDATE语句) 105
4.6.3删除数据(DELETE语句和TRUNCATE语句) 106
4.7事务处理 107
4.7.1事务概述 108
4.7.2操作事务 108
4.8小结 110
4.9实践与练习 110
第5章 PL/SQL编程 111
5.1 PL/SQL概述 112
5.1.1 PL/SQL块结构 112
5.1.2代码注释和标识符 113
5.2数据类型与定义变量和常量 114
5.2.1基本数据类型 115
5.2.2特殊数据类型 116
5.2.3定义变量和常量 119
5.3流程控制语句 120
5.3.1选择语句 120
5.3.2循环语句 124
5.4 PL/SQL游标 127
5.4.1显示游标 127
5.4.2游标的属性 130
5.4.3隐式游标 131
5.4.4通过for语句循环游标 132
5.5 PL/SQL异常处理 133
5.5.1预定义异常 134
5.5.2自定义异常 135
5.6小结 137
5.7实践与练习 137
第6章 过程、函数、触发器和包 139
6.1存储过程 140
6.1.1创建存储过程 140
6.1.2存储过程的参数 142
6.1.3 IN参数的默认值 147
6.2函数 148
6.2.1创建函数 148
6.2.2调用函数 149
6.2.3删除函数 150
6.3触发器 150
6.3.1触发器概述 150
6.3.2语句级触发器 151
6.3.3行级触发器 154
6.3.4替换触发器 156
6.3.5用户事件触发器 157
6.4程序包 159
6.4.1程序包的规范 160
6.4.2程序包的主体 160
6.5小结 163
6.6实践与练习 163
第2篇 核心技术 167
第7章 管理控制文件和日志文件 167
7.1管理控制文件 168
7.1.1控制文件概述 168
7.1.2控制文件的多路复用 169
7.1.3创建控制文件 171
7.1.4备份和恢复控制文件 174
7.1.5删除控制文件 176
7.1.6查询控制文件的信息 177
7.2管理重做日志文件 178
7.2.1重做日志文件概述 178
7.2.2增加日志组及其成员 179
7.2.3删除重做日志 181
7.2.4更改重做日志的位置或名称 182
7.2.5查看重做日志信息 183
7.3管理归档日志文件 184
7.3.1日志模式分类 184
7.3.2管理归档操作 186
7.3.3设置归档文件位置 187
7.3.4查看归档日志信息 190
7.4小结 191
7.5实践与练习 191
第8章 管理表空间和数据文件 193
8.1表空间与数据文件的关系 194
8.2 Oracle 11g的默认表空间 195
8.2.1 SYSTEM表空间 195
8.2.2 SYSAUX表空间 196
8.3创建表空间 197
8.3.1创建表空间的语法 197
8.3.2通过本地化管理方式创建表空间 198
8.3.3通过段空间管理方式创建表空间 199
8.3.4创建非标准块表空间 200
8.3.5建立大文件表空间 201
8.4维护表空间与数据文件 202
8.4.1设置默认表空间 202
8.4.2更改表空间的状态 203
8.4.3重命名表空间 203
8.4.4删除表空间 204
8.4.5维护表空间中的数据文件 204
8.5管理撤销表空间 206
8.5.1撤销表空间的作用 206
8.5.2撤销表空间的初始化参数 207
8.5.3撤销表空间的基本操作 208
8.6管理临时表空间 212
8.6.1临时表空间概述 212
8.6.2创建临时表空间 212
8.6.3查询临时表空间的信息 213
8.6.4关于临时表空间组 213
8.7小结 216
8.8实践与练习 216
第9章 数据表对象 217
9.1数据表概述 218
9.2创建数据表 218
9.2.1数据表的逻辑结构 218
9.2.2创建一个数据表 220
9.2.3数据表的特性 221
9.3维护数据表 226
9.3.1增加和删除字段 226
9.3.2修改字段 228
9.3.3重命名表 229
9.3.4改变表空间和存储参数 229
9.3.5删除表 230
9.3.6修改表的状态 232
9.4数据完整性和约束性 233
9.4.1非空约束 233
9.4.2主键约束 234
9.4.3唯一性约束 237
9.4.4外键约束 238
9.4.5禁用和激活约束 241
9.4.6删除约束 243
9.5小结 243
9.6实践与练习 244
第10章 其他数据对象 245
10.1索引对象 246
10.1.1索引概述 246
10.1.2创建索引 247
10.1.3修改索引 251
10.1.4删除索引 252
10.1.5显示索引信息 253
10.2视图对象 255
10.2.1创建视图 255
10.2.2管理视图 259
10.3同义词对象 260
10.4序列对象 262
10.4.1创建序列 262
10.4.2管理序列 264
10.5小结 265
10.6实践与练习 265
第11章 表分区与索引分区 267
11.1分区技术概述 268
11.2创建表分区 268
11.2.1范围分区 268
11.2.2散列分区 270
11.2.3列表分区 272
11.2.4组合分区 273
11.2.5 Interval分区 274
11.3表分区策略 275
11.4管理表分区 275
11.4.1添加表分区 275
11.4.2合并分区 276
11.4.3删除分区 276
11.4.4并入分区 278
11.5创建索引分区 280
11.5.1索引分区概述 280
11.5.2本地索引分区 280
11.5.3全局索引分区 282
11.6管理索引分区 282
11.6.1索引分区管理的操作列表 282
11.6.2索引分区管理的实际操作 283
11.7小结 284
11.8实践与练习 284
第12章 用户管理与权限分配 285
12.1用户与模式的关系 286
12.2创建与管理用户 287
12.2.1身份验证 287
12.2.2创建用户 287
12.2.3修改用户 289
12.2.4删除用户 290
12.3用户权限管理 291
12.3.1权限简介 291
12.3.2授权操作 291
12.3.3回收系统权限 293
12.3.4对象授权 294
12.3.5回收对象权限 294
12.3.6查询用户与权限 295
12.4角色管理 295
12.4.1角色概述 295
12.4.2预定义角色 296
12.4.3创建角色与授权 298
12.4.4管理角色 299
12.4.5角色与权限的查询 300
12.5资源配置PROFILE 301
12.5.1 PROFILE概述 301
12.5.2使用PROFILE管理密码 302
12.5.3使用PROFILE管理资源 304
12.5.4维护PROFILE文件 305
12.5.5显示PROFILE信息 306
12.6小结 307
12.7实践与练习 307
第3篇 高级应用 311
第13章 Oracle系统调优 311
13.1调整初始化参数 312
13.1.1 Oracle初始化参数分类 312
13.1.2主要系统调优参数介绍 312
13.2系统全局区(SGA)优化 314
13.2.1调整内存分配 314
13.2.2调整日志缓冲区 314
13.2.3调整共享池 316
13.2.4调整数据库缓冲区 319
13.2.5 SGA调优建议 319
13.3排序区优化 319
13.3.1排序区与其他内存区的关系 320
13.3.2排序活动 320
13.3.3专用模式下排序区的调整 321
13.3.4共享模式下排序区的调整 323
13.4小结 324
13.5实践与练习 324
第14章 优化SQL语句 325
14.1常规SQL语句优化 326
14.1.1建议不用“*”来代替所有列名 326
14.1.2用TRUNCATE代替DELETE 326
14.1.3在确保完整性的情况下多用COMMIT语句 327
14.1.4尽量减少表的查询次数 327
14.1.5用[NOT]EXISTS代替[NOT]IN 327
14.2表连接优化 328
14.2.1驱动表的选择 328
14.2.2 WHERE子句的连接顺序 328
14.3合理使用索引 329
14.3.1何时使用索引 329
14.3.2索引列和表达式的选择 329
14.3.3选择复合索引主列 329
14.3.4避免全表扫描大表 330
14.3.5监视索引是否被使用 330
14.4优化器的使用 331
14.4.1优化器的概念 331
14.4.2运行EXPLAIN PLAN 332
14.4.3 Oracle 11g中SQL执行计划的管理 332
14.5数据库和SQL重演 333
14.5.1数据库重演 333
14.5.2 SQL重演 333
14.6 Oracle的性能顾问 334
14.6.1 SQL调优顾问 334
14.6.2 SQL访问顾问 335
14.7小结 335
14.8实践与练习 335
第15章 Oracle数据备份与恢复 337
15.1备份与恢复概述 338
15.2 RMAN工具概述 339
15.2.1 RMAN组件 339
15.2.2 RMAN通道 341
15.2.3 RMAN命令 343
15.3使用RMAN工具备份 345
15.3.1 RMAN备份策略 345
15.3.2使用RMAN备份数据库文件和归档日志 346
15.3.3增量备份 349
15.4使用RMAN工具完全恢复 349
15.4.1恢复处于NOARCHIVVELOG模式的数据库 350
15.4.2恢复处于ARCHIVVELOG模式的数据库 351
15.5使用RMAN工具部分恢复 352
15.5.1基于时间的不完全恢复 352
15.5.2基于更改的不完全恢复 354
15.6小结 355
15.7实践与练习 355
第16章 数据导出和导入 357
16.1 EXPDP和IMPDP概述 358
16.2 EXPDP导出数据 358
16.2.1执行EXPDP命令 358
16.2.2 EXPDP命令参数 361
16.3 IMPDP导入数据 363
16.3.1执行IMPDP命令 363
16.3.2 IMPDP命令参数 364
16.4 SQL*Loader工具 366
16.4.1 SQL*Loader概述 366
16.4.2加载数据 367
16.5小结 369
16.6实践与练习 369
第17章 Oracle 11g的闪回技术 371
17.1闪回技术概述 372
17.2闪回数据库 372
17.2.1闪回恢复区配置 373
17.2.2闪回数据库配置 373
17.2.3闪回数据库技术应用 374
17.3闪回表 376
17.3.1闪回表命令的语法 376
17.3.2闪回表的应用 376
17.4闪回丢弃 378
17.4.1回收站概述 378
17.4.2回收站的应用 378
17.5其他闪回技术 379
17.5.1闪回版本查询 380
17.5.2闪回事务查询 380
17.5.3闪回数据归档 380
17.6小结 381
17.7实践与练习 381
第4篇 项目实战 385
第18章 企业人事管理系统 385
18.1开发背景 386
18.2系统分析 386
18.3系统设计 386
18.3.1系统目标 386
18.3.2系统功能结构 387
18.3.3系统预览 388
18.3.4业务流程图 390
18.3.5文件夹结构设计 390
18.4数据库设计 391
18.4.1数据库分析 391
18.4.2数据库概念设计 391
18.4.3数据库逻辑结构设计 392
18.5主窗体设计 393
18.5.1导航栏的设计 393
18.5.2工具栏的设计 395
18.6公共模块设计 397
18.6.1编写Hibernate配置文件 398
18.6.2编写Hibernate持久化类和映射文件 398
18.6.3编写通过Hibernate操作持久化对象的常用方法 399
18.6.4创建用于特殊效果的部门树对话框 400
18.6.5创建通过部门树选取员工的面板和对话框 402
18.7人事管理模块设计 403
18.7.1人事管理模块功能概述 404
18.7.2人事管理模块技术分析 405
18.7.3人事管理模块实现过程 405
18.8待遇管理模块设计 410
18.8.1待遇管理模块功能概述 410
18.8.2待遇管理模块技术分析 411
18.8.3待遇管理模块实现过程 411
18.9系统维护模块设计 415
18.9.1系统维护模块功能概述 415
18.9.2系统维护模块技术分析 417
18.9.3系统维护模块实现过程 417
18.10 Hibernate关联关系的建立方法 421
18.10.1建立一对一关联 421
18.10.2建立一对多关联 422
18.11小结 424