第1章 关系数据库概述与Oracle安装 1
1.1关系数据库概论 1
1.1.1关系数据库的相关概念 3
1.1.2SQL语言概述 7
1.2数据库的设计与规范化 7
1.2.1数据库设计的具体步骤 7
1.2.2数据库设计的范式理论(xNF) 8
1.3常用数据库建模工具介绍与案例 10
1.3.1ERwin简介 10
1.3.2Power Designer简介 14
1.3.3数据库建模案例(ERwin模型) 15
1.4Oracle数据库介绍 16
1.4.1Oracle数据库的发展 17
1.4.2Oracle数据库的系统结构 18
1.4.3Oracle 10g介绍 20
1.5Oracle的安装 21
1.5.1安装Oracle 10g的环境要求 21
1.5.2安装Oracle 10g 21
1.5.3检验安装是否成功 33
1.5.4Oracle数据库的默认用户 37
1.6Oracle系统配置与客户端工具 38
1.6.1数据库配置助手 38
1.6.2Oracle企业管理器(OEM) 39
1.6.3SQL*Plus与iSQL*Plus 43
1.6.4网络配置助手 46
1.7Oracle数据库的启动与关闭 48
1.7.1使用命令启动与关闭数据库 48
1.7.2使用OEM工具启动与关闭数据库 52
1.7.3开机后自动启动与关闭数据库 52
1.8Windows 7操作系统下安装Oracle 10g案例 57
1.9习题 59
第2章 Oracle数据库体系结构 61
2.1Oracle数据库物理存储结构 61
2.1.1数据文件 61
2.1.2日志文件 63
2.1.3控制文件 67
2.1.4参数文件 68
2.2Oracle数据库逻辑存储结构 70
2.2.1表空间 70
2.2.2段 72
2.2.3盘区 73
2.2.4数据块 74
2.2.5逻辑存储结构相关视图 75
2.3Oracle数据库实例与结构 76
2.3.1进程结构 77
2.3.2内存结构 82
2.4Oracle网络配置文件 83
2.4.1客户端配置 84
2.4.2服务器端配置 85
2.5习题 86
第3章 用户与权限管理 87
3.1用户与方案 87
3.1.1用户与方案的概念 87
3.1.2方案对象与非方案对象 88
3.2创建用户 89
3.2.1用SQL命令创建用户 89
3.2.2权限与角色 90
3.3系统权限管理 92
3.3.1系统权限分类 92
3.3.2系统权限的授权 93
3.3.3系统权限的回收 94
3.4对象权限管理 94
3.4.1对象权限分类 94
3.4.2对象权限的授权 95
3.4.3对象权限的回收 96
3.5角色管理 96
3.5.1角色概述 96
3.5.2系统预定义角色 97
3.5.3用户自定义角色 97
3.5.4删除角色 99
3.6管理用户 99
3.6.1使用SQL命令修改用户 99
3.6.2启用与禁用用户 99
3.6.3删除用户 100
3.7数据库概要文件 100
3.7.1数据库概要文件概述 100
3.7.2创建数据库概要文件 100
3.7.3管理数据库概要文件 102
3.7.4查看概要文件的信息 103
3.8习题 103
第4章 数据表及其管理 105
4.1数据表与其存储的数据类型 105
4.1.1基本数据类型 105
4.1.2数据表的创建 108
4.1.3从原始表创建新表 109
4.1.4为表中字段指定默认值 110
4.1.5查看表结构的命令DESCRIBE 110
4.2表中数据增、删、改 110
4.2.1向表中新增数据(插入) 110
4.2.2修改表中的数据 112
4.2.3删除表中的数据 113
4.3表结构修改与删除表 114
4.3.1表结构修改 114
4.3.2删除表(摘除数据表) 115
4.4数据完整性与实现方法 116
4.4.1主键约束(PRIMARY KEY) 117
4.4.2非空值列约束(NOT NULL) 119
4.4.3唯一性约束(UNIQUE) 119
4.4.4检查约束(CHECK) 120
4.4.5外键约束(FOREIGN KEY) 120
4.5聚簇表 122
4.5.1创建聚簇 123
4.5.2创建聚簇表 124
4.5.3聚簇维护 124
4.5.4聚簇表数据块号查询 125
4.6分区表 126
4.6.1分区键 126
4.6.2分区表 127
4.7表中数据行结构 131
4.8Oracle临时表 133
4.8.1临时表的分类及操作 133
4.8.2临时表的用途 135
4.9数据表设计案例 135
4.10习题 140
第5章 数据查询 143
5.1数据查询语句SELECT 143
5.1.1SELECT子句和FROM子句 144
5.1.2WHERE子句 145
5.1.3ORDER BY子句 148
5.1.4统计函数 149
5.1.5GROUP BY子句 150
5.1.6HAVING子句 151
5.2Oracle数据库中常用的内置SQL函数 151
5.2.1字符串处理函数 152
5.2.2数值运算函数 152
5.2.3日期和时间函数 153
5.2.4转换函数 153
5.3SQL*Plus查询输出结果格式化 154
5.3.1SQL*Plus环境中的常用格式化选项 154
5.3.2使用“环境”对话框设置格式化选项的值 155
5.3.3使用命令设置格式化选项的值 155
5.4SQL脚本文件的创建与执行 158
5.4.1创建SQL脚本文件 158
5.4.2执行SQL脚本文件 159
5.5多表连接查询 161
5.5.1内连接查询 161
5.5.2外连接查询 162
5.5.3交叉连接 164
5.6查询中的集合操作 164
5.6.1UNION集合运算 164
5.6.2INTERSECT集合运算 165
5.6.3MINUS集合运算 165
5.7子查询 166
5.7.1单行子查询 166
5.7.2多行子查询 167
5.7.3多列子查询 168
5.7.4相关子查询 169
5.7.5子查询在FROM子句中运用 169
5.8伪列在查询中的应用 170
5.8.1ROWID伪列 170
5.8.2ROWNUM伪列 170
5.8.3Oracle中的树形查询 172
5.9习题 174
第6章 PL/SQL程序设计 176
6.1PL/SQL引擎 176
6.2PL/SQL程序结构 178
6.3变量与常量 180
6.3.1PL/SQL标识符 180
6.3.2PL/SQL中的数据类型 181
6.3.3变量与常量的定义 182
6.3.4为变量和常量赋值 183
6.3.5变量和常量的作用域 184
6.4主要SQL语句在PL/SQL程序中的使用 185
6.4.1SELECT语句在PL/SQL程序中的使用 185
6.4.2INSERT、UPDATE、DELETE语句在PL/SQL程序中的用法 186
6.4.3DCL语句在PL/SQL程序中的使用 188
6.4.4DDL语句在PL/SQL程序中的使用 189
6.5PL/SQL中的复合数据类型 189
6.5.1记录类型 189
6.5.2记录表类型 190
6.6用%TYPE和%ROWTYPE实现变量的柔性定义 191
6.6.1使用%TYPE定义简单变量 191
6.6.2使用%ROWTYPE定义记录变量 192
6.7PL/SQL中的流程控制语句 192
6.7.1条件选择语句 193
6.7.2循环语句 196
6.8游标及其应用 199
6.8.1显式游标 199
6.8.2带参数的游标 203
6.8.3隐式游标(SQL游标) 204
6.8.4使用游标更新表中的数据 205
6.9PL/SQL程序中的异常处理 206
6.9.1系统异常 206
6.9.2用户自定义异常 208
6.10存储过程与函数 209
6.10.1存储过程 209
6.10.2函数 215
6.11大对象数据操作 217
6.11.1LOB分类及定位器 217
6.11.2操作LOB数据的PL/SQL过程和函数 218
6.11.3LOB列初始化 219
6.11.4PL/SQL操作LOB案例 220
6.12PL/SQL调用Java方法 222
6.13习题 223
第7章 索引、视图、序列及同义词 226
7.1索引及其应用 226
7.1.1Oracle支持的索引类型 227
7.1.2创建索引 232
7.1.3应用索引的因素 234
7.2索引组织化表 236
7.3与索引有关的主要系统视图 238
7.4视图及其应用 238
7.4.1使用视图的益处 239
7.4.2视图的应用 239
7.4.3重新编译视图与删除视图 240
7.4.4通过视图更新数据 241
7.5物化视图 242
7.6序列与同义词 244
7.6.1序列的使用与管理 244
7.6.2同义词的使用与管理 247
7.7习题 247
第8章 事务与并发处理机制 249
8.1事务的概念 249
8.2事务特性 251
8.2.1事务的原子性 251
8.2.2事务的一致性 253
8.2.3事务的隔离性 254
8.2.4事务的持久性 255
8.3管理事务的命令 255
8.3.1COMMIT命令 255
8.3.2ROLLBACK命令 256
8.3.3SAVEPOINT和ROLLBACK TO SAVEPOINT命令 257
8.3.4SET TRANSACTION命令 257
8.3.5SET CONSTRAINT命令 258
8.4并发控制与锁机制 259
8.4.1关于并发的问题 259
8.4.2锁机制 260
8.5习题 262
第9章 触发器及应用 264
9.1触发器概念与组成 264
9.2触发器的分类 265
9.3触发器的创建 266
9.3.1DML事件触发器的创建 267
9.3.2DDL事件触发器的创建 272
9.3.3替代触发器的创建 275
9.3.4用户事件触发器 278
9.3.5系统事件触发器 279
9.4触发器管理 281
9.5触发器应用 282
9.5.1数据库表主键自动填入 282
9.5.2触发器变异表处理 283
9.6习题 285
第10章 Oracle安全策略、数据库备份与恢复 286
10.1Oracle安全策略 286
10.1.1Oracle数据库访问的身份验证 287
10.1.2Oracle数据访问安全的保障 287
10.2Oracle数据库备份与恢复机制 288
10.2.1数据库备份的重要性 288
10.2.2数据库备份的内容 288
10.2.3数据库备份的种类 288
10.2.4数据库备份中的保留策略 289
10.3数据库冷备份 290
10.3.1冷备份概述 290
10.3.2冷备份操作步骤 290
10.3.3冷备份恢复步骤 293
10.4数据库热备份 293
10.4.1热备份概述 293
10.4.2热备份操作步骤 293
10.5用EXP/IMP进行逻辑备份 294
10.5.1EXP导出数据 294
10.5.2IMP导入数据 298
10.6Oracle闪回技术 298
10.6.1闪回查询(Flashback Query) 299
10.6.2闪回删除(Flashback Drop) 300
10.6.3闪回数据归档(Flashback Data Archive) 302
10.6.4闪回数据库(Flashback Database) 303
10.7习题 304
第11章 数据库部署、访问接口与调优 305
11.1数据库部署 305
11.1.1表空间规划与用户授权 305
11.1.2安装用户数据库对象 306
11.2ODBC接口访问Oracle 307
11.2.1ODBC体系结构 308
11.2.2Oracle ODBC数据源配置 309
11.2.3ODBC所需文件与执行流程 311
11.2.4ODBC数据类型与转换 312
11.2.5ODBCAPI函数 315
11.2.6C语言环境ODBC访问Oracle案例 318
11.3JDBC接口访问Oracle 321
11.3.1JDBC体系结构 322
11.3.2JDBC常用接口介绍 323
11.3.3使用JDBC的步骤 324
11.3.4Java语言环境JDBC访问Oracle案例 326
11.4OLEDB接口访问Oracle 330
11.4.1OLEDB体系结构 331
11.4.2C++通过OLEDB访问Oracle 331
11.5Oracle数据库应用性能调优 337
11.5.1系统架构及实现差异对系统性能的影响 337
11.5.2查询语句对系统性能的影响 343
11.5.3合理设计并利用索引 345
11.6习题 350
参考文献 351