图书目录

第1篇 Oracle概述

第1章 Oracle数据库基础 2

1.1 理解关系数据库系统(RDBMS) 3

1.1.1 什么是数据库 3

1.1.2 关系数据模型 3

1.1.3 数据库种类及厂家 6

1.2 关系数据库规范化理论 6

1.2.1 关系与关系模式 6

1.2.2 函数依赖 7

1.2.3 范式理论 8

1.3 Oracle 11g数据库产品 11

1.3.1 数据管理部分的新功能 11

1.3.2 PL/SQL部分的新功能 12

1.3.3 其他的新功能 14

1.4 Oracle数据类型 14

1.5 小结 15

1.6 习题 15

第2章 Oracle 系统的安装 17

2.1 环境和系统配置 18

2.2 Windows环境下的安装过程 18

2.2.1 选择安装方法 18

2.2.2 选择安装类型 19

2.2.3 指定主目录详细信息 19

2.2.4 产品特定的先决条件检查 20

2.2.5 选择配置选项 20

2.2.6 概要 21

2.2.7 安装 22

2.2.8 安装结束 22

2.3 创建数据库 23

2.3.1 启动Oracle 11g的数据库配置助理 23

2.3.2 执行操作选择 23

2.3.3 选择模板 24

2.3.4 数据库标识界面 24

2.3.5 数据库管理选项界面 25

2.3.6 数据库身份证明界面 25

2.3.7 存储选项界面 26

2.3.8 数据库文件所在位置界面 26

2.3.9 恢复配置界面 27

2.3.10 示例方案选项界面 27

2.3.11 数据库初始参数 28

2.3.12 安全设置界面 30

2.3.13 自动维护任务界面 30

2.3.14 数据库存储界面 31

2.3.15 创建选项界面 33

2.3.16 确认界面 33

2.3.17 创建完成提示界面 34

2.4 安装后的工作 34

2.4.1 Oracle的服务 34

2.4.2 创建监听服务 36

2.4.3 测试本地Oracle数据库服务 38

2.4.4 通过网络服务名连接Oracle实例 39

2.5 HR演示模式 40

2.5.1 用户和模式 40

2.5.2 HR模式 40

2.6 小结 41

2.7 习题 41

第3章 SQL*Plus和SQL Developer 43

3.1 SQL*Plus 44

3.2 常见的SQL*Plus命令 44

3.2.1 登录SQL*Plus 44

3.2.2 退出SQL*Plus 44

3.2.3 SQL*Plus帮助 45

3.2.4 显示表、视图结构命令DESC 45

3.2.5 列出缓冲区命令语句LIST 45

3.2.6 保存缓冲区命令到文件 46

3.2.7 读取命令文件到缓冲区 46

3.2.8 将屏幕信息转储到文件中 47

3.2.9 数据的格式化输出 47

3.3 SQL Developer 48

3.3.1 SQL Developer概述 48

3.3.2 SQL Developer用户界面 48

3.3.3 创建数据库连接 50

3.3.4 使用CREATE TABLE对话框

            添加新表 51

3.3.5 更改表定义 52

3.3.6 给表添加约束 53

3.3.7 向表中添加数据 54

3.3.8 访问数据 56

3.3.9 使用报表 56

3.3.10 添加用户定义的报表 57

3.4 习题 57

第2篇 Oracle SQL和PL/SQL

第4章 简单的SELECT语句 60

4.1 SELECT语句基础 61

4.1.1 SELECT语法 61

4.1.2 列的别名 62

4.1.3 字符串的连接 62

4.2 SQL中的单行函数 63

4.2.1 单行字符函数 63

4.2.2 单行数字函数 67

4.2.3 日期函数 70

4.2.4 转换函数 71

4.2.5 空值处理函数 72

4.3 SQL中的组函数 73

4.3.1 多记录组函数 73

4.3.2 带GROUP BY的计算 74

4.3.3 用HAVING来限制分组计算 75

4.4 限制与排序 75

4.4.1 限制条件 76

4.4.2 用ORDER BY子句对结果排序 77

4.5 习题 77

第5章 表和完整性约束 79

5.1 创建表 80

5.1.1 创建表结构的语法 80

5.1.2 创建表结构例子 80

5.1.3 为表和列加注释 81

5.2 修改表 83

5.2.1 修改表结构命令 83

5.2.2 增加新列和修改列 83

5.2.3 删除表中的某个列 84

5.3 删除表 84

5.4 主键 84

5.4.1 创建主键 85

5.4.2 改变主键 86

5.4.3 删除主键 86

5.5 外键 87

5.5.1 建立外键 87

5.5.2 修改外键 90

5.5.3 删除外键 90

5.6 Oracle的约束定义 90

5.6.1 CHECK约束 91

5.6.2 NOT NULL约束 93

5.6.3 唯一性约束 93

5.6.4 约束检验 95

5.7 习题 95

第6章 使用SQL进行数据操作 97

6.1 INSERT操作 98

6.1.1 INSERT语句语法 98

6.1.2 插入带空值的数据行 98

6.1.3 日期和文字插入 99

6.1.4 子查询插入 99

6.1.5 用子查询取得值的插入 100

6.2 UPDATE操作 100

6.2.1 UPDATE命令语法 100

6.2.2 用日期更新操作 100

6.2.3 用文字更新操作 101

6.2.4 用查询更新操作 101

6.3 DETELE操作 102

6.3.1 有条件的DELETE操作 102

6.3.2 条件中带子查询的删除 102

6.3.3 删除表中的重复行 102

6.4 用MERGE实现更新和插入 104

6.5 清空表TRNUCATE 106

6.6 DML的提交和撤销 107

6.7.1 自动提交的设置 107

6.7.2 保存点和撤销 109

6.7 习题 111

第7章 索引、视图和序列 113

7.1 索引 114

7.1.1 创建索引的语法 114

7.1.2 创建索引 114

7.1.3 修改索引 115

7.1.4 删除索引 116

7.1.5 监视索引是否被使用 116

7.1.6 创建表时创建索引 116

7.2 索引有关的数据字典 117

7.2.1 索引数据字典 117

7.2.2 数据字典查询例子 118

7.3 视图 119

7.3.1 创建视图语法 120

7.3.2 创建一个新视图 120

7.3.3 删除一个视图 121

7.3.4 视图有关的数据字典 121

7.4 序列 122

7.4.1 建立序列 122

7.4.2 修改序列 123

7.4.3 使用序列 124

7.4.4 删除序列 125

7.5 习题 125

第8章 PL/SQL基础 128

8.1 概述 129

8.1.1 PL/SQL的优点 129

8.1.2 PL/SQL程序块的基本结构 129

8.1.3 创建、运行和测试一个PL/SQL

            匿名块 130

8.2 PL/SQL基本语法 131

8.2.1 常量和变量的命名 131

8.2.2 变量赋值 132

8.2.3 字段类型%TYPE 134

8.2.4 行类型%ROWTYPE 135

8.2.5 注释 137

8.2.6 数据库赋值 137

8.3 PL/SQL处理流程 138

8.3.1 条件语句 138

8.3.2 循环语句 141

8.4 游标的使用 144

8.4.1 显式游标 144

8.4.2 隐式游标 146

8.4.3 游标循环 147

8.5 异常 150

8.5.1 异常处理概念 150

8.5.2 预定义的异常 150

8.5.3 非预定义异常 151

8.5.4 自定义的异常处理 152

8.6 习题 155

第9章 存储过程、函数、触发器和包 157

9.1 存储过程 158

9.1.1 创建过程 158

9.1.2 使用过程 159

9.1.3 删除过程 160

9.2 函数 160

9.2.1 创建函数 160

9.2.2 使用函数 162

9.2.3 删除函数 163

9.3 触发器 164

9.3.1 触发器类型 164

9.3.2 DML触发器 164

9.3.3 替代触发器 167

9.3.4 系统触发器 169

9.3.5 触发器管理 170

9.4 创建包和使用包 171

9.4.1 包声明的定义 171

9.4.2 包主体的定义 172

9.4.3 使用包 173

9.4.4 删除包 173

9.5 过程、函数、触发器、包有关的

        数据字典 173

9.6 习题 175

第3篇 Oracle管理

第10章 Oracle数据库系统结构 179

10.1 Oracle实例 180

10.1.1 系统全局区(SGA) 180

10.1.2 程序全局区(PGA) 180

10.1.3 Oracle后台进程 181

10.2 Oracle数据库文件 183

10.2.1 数据文件 183

10.2.2 控制文件 183

10.2.3 日志文件 184

10.2.4 初始化参数文件 184

10.2.5 警告文件 185

10.2.6 跟踪文件 186

10.2.7 口令文件 187

10.3 Oracle数据库逻辑组成 188

10.3.1 表空间与数据文件 188

10.3.2 段(SEGMENT) 190

10.3.3 区间(EXTENT) 190

10.3.4 数据块(DATA BLOCK) 191

10.4 实例管理 191

10.4.1 启动实例 191

10.4.2 关闭数据库 193

10.4.3 监控和管理实例 194

10.5 Oracle的数据字典 197

10.5.1 数据字典的分类 197

10.5.2 USER_视图字典使用示例 199

10.5.3 其他视图字典使用示例 203

10.6 习题 204

第11章 管理表空间与数据文件 208

11.1 表空间与数据文件概念 209

11.1.1 表空间概念 209

11.1.2 数据文件概念 210

11.2 创建表空间 210

11.2.1 表空间创建语法 211

11.2.2 创建表空间 212

11.3 表空间的管理 214

11.3.1 管理SYSTEM表空间 214

11.3.2 管理SYSAUX表空间 216

11.3.3 使表空间脱机/联机 216

11.3.4 设置只读表空间 217

11.4 删除表空间 218

11.5 数据文件的常规管理 219

11.5.1 数据文件的数目 219

11.5.2 给表空间增加新的数据文件 219

11.5.3 控制数据文件的自动扩展 220

11.5.4 调整数据文件大小 220

11.5.5 使数据文件联机或脱机 221

11.5.6 创建大数据文件的表空间 222

11.5.7 升级字典表空间为本地表空间 223

11.6 表空间与数据文件数据字典 223

11.7 习题 225

第12章 管理控制文件和日志文件 227

12.1 控制文件概念 228

12.2 控制文件的管理操作 228

12.2.1 在初始化参数文件中指定

              控制文件 228

12.2.2 将控制文件存储在不同磁盘中 229

12.2.3 给控制文件所在磁盘留出空间 231

12.3 控制文件相关的数据字典 231

12.4 日志文件概念 234

12.4.1 联机重做日志文件 234

12.4.2 日志切换概念 235

12.5 日志文件管理 237

12.5.1 建立多个日志文件 237

12.5.2 重新命名日志成员 238

12.5.3 删除重做日志文件 240

12.6 归档日志管理 242

12.6.1 归档日志概念 242

12.6.2 日志工作模式 242

12.6.3 切换日志工作模式 243

12.7 习题 245

第13章 管理用户与权限 247

13.1 用户管理 248

13.1.1 创建用户 248

13.1.2 修改用户 250

13.1.3 删除用户 252

13.2 权限管理 252

13.2.1 GRANT 命令与REVOKE 命令 253

13.2.2 系统权限的授予与撤销 254

13.2.3 对象权限的授予与撤销 256

13.3 角色管理 258

13.3.1 预定义角色 259

13.3.2 创建角色 259

13.3.3 给角色授权 260

13.3.4 将角色授予用户 260

13.3.5 删除角色 261

13.4 有关的数据字典 261

13.4.1 查询角色信息 261

13.4.2 查询用户拥有的对象权限 262

13.5 习题 262

第14章 Oracle Database 11g闪回技术 266

14.1 闪回表 267

14.2 闪回删除 269

14.2.1 回收站机制 269

14.2.2 使用闪回删除 271

14.3 闪回版本查询 272

14.4 闪回事务查询 273

14.5 闪回数据库 275

14.5.1 闪回数据库 276

14.5.2 使用闪回数据库 277

14.6 闪回数据归档 279

14.6.1 创建与管理闪回数据归档区 280

14.6.2 为表指定闪回数据归档区 282

14.6.3 使用闪回数据归档 283

14.7 习题 283

第4篇 系统优化调整与工具

第15章 Oracle系统调优与SQL优化 286

15.1 常用调优工具 287

15.1.1 动态性能视图V$ 287

15.1.2 TKPROF工具 288

15.1.3 Explain Plan 289

15.1.4 AUTOTRACE实用程序 289

15.2 性能有关的动态性能视图 291

15.2.1 系统相关的性能视图 291

15.2.2 当前会话状态视图 293

15.2.3 闩、锁相关的视图 296

15.3 调整内存分配 296

15.3.1 调整重做日志缓冲区 296

15.3.2 调整共享池 298

15.4 常用的SQL优化规则 300

15.4.1 SELECT语句中避免使用* 300

15.4.2 使用完全限定的列引用 301

15.4.3 使用WHERE子句替代

              HAVING子句 302

15.4.4 使用TRUNCATE替代DELETE 303

15.4.5 使用表连接替代子查询 305

15.4.6 使用EXISTS替代IN 305

15.4.7 使用“<=”替代“<” 307

15.5 表的连接方法 307

15.5.1 嵌套循环连接 307

15.5.2 排序合并连接 309

15.5.3 哈希连接 312

15.6 有效使用索引 313

15.6.1 创建索引的基本原则 314

15.6.2 索引列上所使用的操作符 314

15.6.3 避免对唯一索引列使用NULL值 315

15.6.4 选择复合索引主列 316

15.6.5 监视索引是否被使用 317

15.7 习题 318

第16章 导出与导入 322

16.1 导出和导入概述 323

16.1.1 导出和导入的作用 323

16.1.2 导出方式 323

16.1.3 导入方式 324

16.1.4 导出和导入的参数传递 324

16.2 导出EXP实用程序 326

16.2.1 EXP命令语法 326

16.2.2 一般的 EXP备份 330

16.2.3 使用DIRECT直接路径导出 332

16.2.4 指定查询结果集的导出 333

16.3 导入IMP实用程序 334

16.3.1 IMP语法及参数 334

16.3.2 一般的IMP数据恢复 338

16.3.3 导入过程性能要点 339

16.4 习题 340

第17章 Oracle 11g企业管理器 342

17.1 Oracle 11g企业管理器介绍 343

17.2 Oracle 11g EM安装配置 344

17.2.1 安装选择说明 344

17.2.2 自定义安装 345

17.2.3 设置与安装数据库控制 346

17.2.4 启动Oracle 11g EM 346

17.2.5 登录到Oracle 11g EM 347

17.3 用企业管理器管理Oracle系统 349

17.3.1 实例管理 350

17.3.2 方案管理 351

17.3.3 用户管理 351

17.4 用企业管理器维护Oracle系统 353

17.4.1 表空间和数据文件管理 353

17.4.2 执行导出操作 355

17.4.3 浏览预警文件信息 360

17.5 用企业管理器进行性能调整 361

17.5.1 找出消耗最高的会话 362

17.5.2 找出顶级SQL语句 363

17.5.3 监视Oracle实例是否存在锁 363

17.6 习题 363