第1篇 基础篇 2
第1章 Oracle数据库概述 2
1.1 数据库基本概念 2
1.1.1 数据库与数据库管理系统 3
1.1.2 关系数据模型 4
1.1.3 关系数据库系统的组成 5
1.2 了解常用的数据库产品 6
1.3 Oracle简介 8
1.3.1 Oracle的发展历程 8
1.3.2 Oracle的特点 9
1.3.3 Oracle的工作模式 9
1.3.4 Oracle应用结构 11
1.3.5 Oracle基本概念 12
1.4 Oracle llg环境 13
1.4.1 在Windows环境下安装Oracle llg 13
1.4.2 在Linux环境下安装Oracle llg 19
1.4.3 Oracle网络服务 23
1.4.4 Oracle启动与关闭 28
1.5 Oracle安装与使用常见问题 29
1.6 本章小结 31
1.7 习题与实践练习 31
第2章 Oracle数据库体系结构 32
2.1 物理存储结构 33
2.1.1 数据文件 33
2.1.2 控制文件 35
2.1.3 日志文件 35
2.1.4 其他文件 36
2.2 逻辑存储结构 36
2.2.1 表空间 37
2.2.2 段 38
2.2.3 区 39
2.2.4 块 39
2.3 内存结构 40
2.3.1 系统全局区(SGA) 41
2.3.2 程序全局区(PGA) 43
2.4 Oracle进程结构 43
2.5 数据字典 48
2.5.1 静态数据字典 48
2.5.2 动态数据字典 49
2.6 本章小结 52
2.7 习题与实践练习 52
第3章 Oracle数据库常用工具 55
3.1 SQL Plus概述 55
3.2 启动、退出SQL Plus 56
3.3 预备知识 60
3.4 SQL Plus运行环境 60
3.5 使用SQL Plus命令 63
3.5.1 HELP命令 63
3.5.2 DESCRIBE命令 65
3.5.3 编辑SQL Plus命令 66
3.5.4 如何在SQL Plus中使用变量 73
3.5.5 SQL Plus的报表功能 77
3.6 企业管理器(OEM) 83
3.6.1 OEM的启动 84
3.6.2 OEM的使用 86
3.7 实例分析 90
3.8 本章小结 91
3.9 习题与实践练习 91
第4章 表空间和数据文件管理 95
4.1 Oracle数据库逻辑结构 95
4.2 表空间和数据文件概述 96
4.3 表空间中的磁盘空间管理 98
4.4 创建表空间 99
4.4.1 创建永久表空间 101
4.4.2 创建临时表空间 102
4.4.3 创建撤销表空间 103
4.4.4 创建非标准块表空间 103
4.4.5 创建大文件表空间 104
4.5 维护表空间和数据文件 105
4.5.1 重命名表空间和数据文件 105
4.5.2 改变表空间和数据文件状态 106
4.5.3 设置默认表空间 108
4.5.4 扩展表空间 108
4.5.5 删除表空间和数据文件 110
4.6 查看表空间和数据文件信息 111
4.7 实例分析 113
4.8 本章小结 115
4.9 习题与实践练习 115
第5章 Oracle模式对象 118
5.1 表 118
5.1.1 创建表 118
5.1.2 管理表 122
5.2 表的约束 126
5.2.1 NOT NULL(非空)约束 127
5.2.2 UNIQUE(唯一性)约束 128
5.2.3 PRIMARY KEY(主键)约束 130
5.2.4 FOREIGN KEY约束 131
5.2.5 CHECK(检查)约束 134
5.2.6 禁用和激活约束 135
5.2.7 约束的验证状态 136
5.3 视图 137
5.3.1 创建视图 137
5.3.2 视图的DML操作 139
5.3.3 修改和删除视图 141
5.4 索引 141
5.4.1 索引分类 142
5.4.2 创建索引 143
5.4.3 管理索引 145
5.5 序列 148
5.5.1 创建序列 148
5.5.2 使用序列 150
5.5.3 管理序列 151
5.6 同义词 151
5.7 实例分析 152
5.8 本章小结 155
5.9 习题与实践练习 155
第6章 SQL语言基础 160
6.1 SQL语言概述 160
6.1.1 SQL语言的特点 161
6.1.2 SQL语言的种类 161
6.1.3 SQL语言规范与操作 163
6.1.4 SQL操作界面 163
6.2 Oracle llg常用数据类型与运算符 163
6.2.1 Oraclellg中常用数据类型 163
6.2.2 Oracle常用操作符 164
6.3 数据操纵语言(DML) 164
6.3.1 SELECT基本查询 165
6.3.2 添加数据就用INSERT 171
6.3.3 修改数据就用UPDATE 172
6.3.4 删除数据就用DELETE或TRUNCATE 172
6.3.5 其他数据操纵语句 173
6.4 数据控制语言(DCL) 174
6.4.1 GRANT语句 174
6.4.2 REVOKE语句 174
6.5 事务控制语言(TCL) 174
6.5.1 COMMIT语句 175
6.5.2 ROLLBACK语句 175
6.5.3 SAVEPOINT保存点 175
6.6 使用函数 176
6.6.1 字符串函数 177
6.6.2 数值函数 178
6.6.3 日期时间函数 178
6.6.4 转换函数 179
6.6.5 聚合函数 180
6.7 实例分析 181
6.8 本章小结 187
6.9 习题与实践练习 187
第2篇 进阶篇 190
第7章 SELECT高级查询 190
7.1 简单连接查询 190
7.1.1 使用等号(=)实现多个表的简单连接 190
7.1.2 为表设置别名 191
7.2 使用JOIN关键字的连接查询 192
7.2.1 内连接查询 192
7.2.2 外连接查询 194
7.2.3 交叉连接 195
7.3 SELECT查询的集合操作 196
7.3.1 UNION集合运算 196
7.3.2 INTERSECT集合运算 197
7.3.3 MINUS集合运算 198
7.4 子查询 198
7.4.1 子查询的类型 199
7.4.2 单行子查询 199
7.4.3 多行子查询 200
7.4.4 多列子查询 202
7.4.5 关联子查询 203
7.4.6 其他语句中使用子查询 204
7.5 实例分析 205
7.6 本章小结 212
7.7 习题与实践练习 212
第8章 PL/SQL编程基础 214
8.1 PL/SQL简介 214
8.1.1 PL/SQL体系结构 214
8.1.2 PL/SQL特点 215
8.1.3 PL/SQL的开发和运行环境 215
8.2 PL/SQL程序块结构 216
8.3 常量和变量 218
8.3.1 PL/SQL标识符 218
8.3.2 数据类型 219
8.3.3 声明常量与变量 220
8.3.4 使用%TYPE和%ROWTYPE定义变量 222
8.4 PL/SQL控制结构 223
8.4.1 条件结构 224
8.4.2 循环结构 227
8.5 游标的创建与使用 229
8.5.1 声明游标 230
8.5.2 打开游标 231
8.5.3 检索游标 231
8.5.4 关闭游标 231
8.5.5 游标常用属性 232
8.5.6 简单游标循环 233
8.5.7 游标FOR循环 233
8.5.8 带参数的游标 234
8.5.9 使用游标更新数据 234
8.6 PL/SQL的异常处理 235
8.6.1 异常处理 235
8.6.2 系统异常 236
8.6.3 自定义异常 237
8.7 PL/SQL应用程序性能调优 239
8.7.1 PL/SQL性能问题的由来 239
8.7.2 确定PL/SQL的性能问题 240
8.7.3 PL/SQL性能优化特性 241
8.8 综合实例 244
8.9 本章小结 246
8.10 习题与实践练习 246
第9章 存储过程、函数、触发器和包 251
9.1 存储过程 251
9.1.1 创建与调用存储过程 251
9.1.2 修改与删除存储过程 255
9.1.3 与存储过程相关数据字典 255
9.1.4 存储过程使用注意事项 256
9.2 函数 256
9.2.1 创建和调用函数 256
9.2.2 修改和删除函数 257
9.3 触发器 257
9.3.1 触发器类型 258
9.3.2 创建触发器 259
9.3.3 管理触发器 264
9.3.4 创建触发器的限制 265
9.4 程序包 266
9.4.1 创建程序包 266
9.4.2 包的开发步骤 268
9.4.3 删除程序包 268
9.4.4 包的管理 268
9.5 实例分析 269
9.6 本章小结 273
9.7 习题与实践练习 273
第10章 Oracle安全性管理 276
10.1 用户 276
10.1.1 创建用户 276
10.1.2 管理用户 277
10.2 权限管理 279
10.2.1 权限概述 279
10.2.2 系统权限管理 280
10.2.3 对象权限管理 282
10.2.4 安全新特性 285
10.3 角色管理 288
10.3.1 角色概述 288
10.3.2 用户自定义角色 288
10.3.3 管理用户角色 289
10.4 概要文件和数据字典视图 292
10.4.1 创建概要文件 293
10.4.2 管理概要文件 295
10.4.3 数据字典视图 296
10.5 审计 297
10.5.1 审计启用与关闭 299
10.5.2 登录审计 299
10.5.3 语句审计 300
10.5.4 对象审计 300
10.5.5 权限审计 301
10.6 实例分析 301
10.6.1 Oracle透明数据加密(TDE) 302
10.6.2 实施表空间级透明数据加密 302
10.6.3 某教务管理系统的安全性设计 303
10.7 本章小结 305
10.8 习题与实践练习 305
第11章 数据库备份和恢复 308
11.1 备份和恢复概述 308
11.1.1 数据库备份概述 308
11.1.2 数据库备份的种类 309
11.1.3 数据库备份的保留策略 310
11.1.4 数据库恢复概述 311
11.1.5 备份与恢复的关系 312
11.2 物理备份与恢复 313
11.2.1 冷备份与恢复 314
11.2.2 热备份与恢复 315
11.2.3 几种非完全恢复方法 316
11.3 逻辑备份与恢复 320
11.3.1 逻辑备份与恢复概述 320
11.3.2 EXP/IMP导出/导入 320
11.3.3 数据泵(Data Pump) 321
11.3.4 恢复管理器(RMAN) 327
11.4 案例分析 333
11.5 本章小结 334
11.6 习题与实践练习 334
第3篇 高级篇 338
第12章 系统性能及语句优化 338
12.1 Oracle系统性能概述 338
12.1.1 影响Oracle数据库性能要素 339
12.1.2 Oracle SQL语句处理过程 339
12.1.3 Oracle数据库性能优化内容 340
12.2 共享池 341
12.2.1 共享池工作原理 341
12.2.2 共享池大小管理 342
12.2.3 将PL/SQL驻留在共享池中 344
12.3 网络配置问题 345
12.4 调整磁盘I/O 346
12.5 调整竞争 347
12.6 PL/SQL wrap(转换器) 348
12.6.1 运行wrap实用程序 348
12.6.2 输入和输出文件 349
12.7 SQL语句优化技巧 349
12.7.1 SQL优化的一般性原则 349
12.7.2 SELECT语句中避免使用“*” 350
12.7.3 使用WHERE子句替代HAVING子句 351
12.7.4 使用表连接而不是多个查询 351
12.7.5 选择最有效率的表名顺序 352
12.7.6 WHERE子句中的连接顺序 352
12.7.7 用TRUNCATE替代DELETE 353
12.7.8 尽量多使用COMMIT 353
12.7.9 使用EXISTS替代IN 353
12.7.10 使用EXISTS替代DISTINCT 354
12.7.11 使用“>=”替代“>”或“<=”替代“<” 355
12.7.12 SQL语句排序优化 355
12.8 有效使用索引 355
12.8.1 创建索引的基本原则 356
12.8.2 索引列上避免使用“非”操作符 356
12.8.3 用UNION替换OR 357
12.8.4 避免对唯一索引列使用NULL值 357
12.8.5 选择复合索引主列 357
12.8.6 监视索引是否被使用 358
12.9 Oracle索引优化存在的问题 359
12.10 常用Oracle数据库调优工具 360
12.11 案例分析 361
12.12 本章小结 362
12.13 习题与实践练习 362
第13章 Oracle数据挖掘技术 364
13.1 Oracle数据挖掘(ODM)技术简介 364
13.1.1 数据挖掘概述 364
13.1.2 Oracle数据挖掘概述 365
13.1.3 Oracle数据挖掘特点 365
13.1.4 ODM使用方式 366
13.2 Oracle数据挖掘功能安装 368
13.2.1 ODM安装要求 368
13.2.2 ODM安装过程 369
13.3 Oracle数据挖掘应用实例 374
13.3.1 ODM开发过程 374
13.3.2 ODM开发案例 375
13.4 本章小结 384
13.5 习题与实践练习 384
第14章 数据库应用综合实例 385
14.1 系统设计 385
14.1.1 系统功能概述 385
14.1.2 系统功能模块设计 386
14.2 数据库设计 386
14.2.1 数据库需求分析 386
14.2.2 数据库逻辑结构设计 387
14.3 数据库实现 389
14.3.1 创建mmu用户 390
14.3.2 创建表、序列和约束 390
14.4 系统功能设计 392
14.4.1 逻辑分层结构设计 392
14.4.2 系统文件组织结构 393
14.4.3 实体对象设计 394
14.4.4 定义ActionForm 394
14.4.5 持久层结构设计 395
14.4.6 业务层结构设计 395
14.4.7 页面结构设计 396
14.5 系统功能实现 397
14.5.1 创建Web项目——MedicineManager 397
14.5.2 配置文件 397
14.5.3 实体及映射 400
14.5.4 公共类设计 402
14.5.5 系统登录模块设计 404
14.5.6 药品类别信息管理 406
14.5.7 药品信息管理 410
14.5.8 系统管理 413
14.5.9 运行项目 415
14.6 本章小结 415
附录A 实验指导与实习 416
实验1 Oracle数据库安装、启动和关闭 416
实验2 SQL*Plus工具使用 417
实验3 SQL语句操作 418
实验4 PL/SQL编程Ⅰ(存储过程和函数) 419
实验5 PL/SQL编程Ⅱ(触发器和包) 421
实验6 Oracle用户权限与安全 423
实验7 Oracle数据库备份与恢复 424
实验8 综合实习 425
附录B Oracle常用语句与使用技巧 426
附录C Oracle数据库认证考试介绍与样题 432
参考文献 439