第0章 Oracle的安装及相关配置 1
0.1 Oracle的安装 1
0.2进入Oracle的SQL*Plus界面 5
0.3 scott用户及其对象维护 6
0.4本书中将用到的表 7
0.5 SQL(Structured Query Language)语言 7
0.6本书所用的术语 8
0.7 Oracle11g上的SQL*Plus 9
0.8使用iSQL*Plus 10
0.9使用DOS窗口启动SQL*Plus 13
第1章 简单查询、限制性查询和数据的排序 15
1.1最简单的查询语句 16
1.2在查询语句中如何选择特定的列(投影操作) 16
1.3如何书写查询语句 18
1.4列标题和数据的默认显示格式 19
1.5如何在SQL语句中使用算术表达式 20
1.6如何在SQL语句中使用列的别名 22
1.7连接运算符 23
1.8 DISTINCT运算符 23
1.9基本查询语句的格式 25
1.10如何限制所选择的数据行(选择操作) 26
1.11如何使用BETWEEN AND 比较运算符 27
1.12在SQL语句中使用字符串和日期 28
1.13使用IN比较运算符 29
1.14使用LIKE比较运算符 31
1.15 如何使用转义操作符 32
1.16 ORDER BY子句(排序操作) 33
1.17在ORDER BY子句中使用别名或表达式 34
1.18在 ORDER BY子句中使用列号及使用多列 35
1.19扩充后的查询语句的格式 37
1.20练习题 38
第2章 常用的SQL*Plus命令和环境变量 40
2.1 DESC[RIBE]命令 40
2.2 SET LINE[SIZE]{80|n}命令 41
2.3 L命令和n text命令 42
2.4“/”(RUN)命令 43
2.5 n(设置当前行)命令和A[PPEND](附加)命令 44
2.6 DEL命令 45
2.7 C[RANGE]命令 46
2.8如何生成脚本文件 48
2.9如何编辑脚本文件 50
2.10如何直接运行脚本文件 51
2.11 SPOOL命令 52
2.12控制SQL*Plus的环境 53
2.13 SQL*Plus的环境变量ECHO 54
2.14常用的SQL*Plus环境变量 56
2.15 SQL*Plus的COLUMN格式化命令 57
2.16 SQL*Plus的其他格式化命令 61
2.17怎样获取SQL*Plus的帮助信息 62
2.18练习题 63
第3章 函数、NULL值的处理以及逻辑操作 65
3.1什么是函数 65
3.2单行函数简介 65
3.3单行字符型函数 65
3.4使用单行字符型函数的实例 70
3.5数字型函数 71
3.6日期型数据的处理 72
3.7日期函数 74
3.8 ROUND和TRUNC函数用于日期型数据 76
3.9不同数据类型之间的隐含转换 77
3.10不同数据类型之间的显式转换 78
3.11什么是空值 81
3.12含有空值的表达式的运算 82
3.13空值的排序 84
3.14逻辑表达式和逻辑运算符 84
3.15运算符的优先级 87
3.16 NVL函数 88
3.17 DECODE函数 88
3.18单值函数的嵌套 89
3.19 Oracle 9i新增加的单值函数和表达式 90
3.20 COUNT函数 94
3.21 AVG和SUM函数 95
3.22 MAX和MIN函数 95
3.23 GROUP BY子句的应用与排列次序 96
3.24 GROUP BY子句的特殊用法以及非法操作 97
3.25 HAVING子句的使用 99
3.26分组函数的嵌套 100
3.27分组函数的空值问题 101
3.28其他的分组函数和分组函数的小结 103
3.29练习题 103
第4章 多表查询和单行子查询 106
4.1数据库的规范化 106
4.2主键和实体完整性 107
4.3第一范式 107
4.4消除部分依赖 108
4.5外键和引用完整性 109
4.6第二范式和第三范式 109
4.7规范化过程小结 111
4.8多表连接 112
4.9相等连接 112
4.10连接中表别名的使用 113
4.11笛卡儿乘积(乘积连接) 114
4.12自连接 115
4.13两个以上表的连接 116
4.14不等连接 116
4.15 外连接 118
4.16 SQL: 1999语法的笛卡儿乘积和自然连接 119
4.17使用USING子句和ON子句的连接 119
4.18使用ON子句的多表连接和附加条件 121
4.19左外连接和右外连接 122
4.20全外连接 123
4.21为什么引入单行子查询 124
4.22 WHERE子句中的单行子查询 125
4.23 HAVING子句和FROM子句中的单行子查询 127
4.24练习题 128
第5章 表、索引以及替代变量 130
5.1创建表的语句以及命名和引用规则 130
5.2列的数据类型和默认值 131
5.3创建表的例子 133
5.4利用子查询来创建表 134
5.5修改表的结构 135
5.6改变对象的名称 139
5.7截断表和删除表 140
5.8为什么引入索引 142
5.9如何建立索引 143
5.10如何查看索引 144
5.11使用索引时应注意的问题 145
5.12如何删除索引 146
5.13替代变量引入的原因 147
5.14以&开始的替代变量 148
5.15 字符型和日期型替代变量 150
5.16以&&开始的替代变量 151
5.17替代变量可以出现的地方 153
5.18使用DEFINE定义替代变量 154
5.19使用ACCEPT定义替代变量 155
5.20 ACCEPT命令的格式和选项 156
5.21练习题 157
第6章 数据的维护 159
6.1准备工作 159
6.2 INSERT语句 159
6.3 INSERT语句中的空值问题 161
6.4如何向表中插入特殊的值 163
6.5如何利用子查询向表中插入数据 163
6.6如何利用替代变量向表中插入数据和将INSERT语句存入脚本文件 164
6.7利用ACCEPT在INSERT语句中产生用户友好的系统提示 166
6.8 UPDATE语句 167
6.9基于另一个表来修改记录 169
6.10利用多列子查询来修改记录 171
6.11DELETE语句 172
6.12在使用DELETE时可能出现的问题 173
6.13基于另一个表来删除行 174
6.14引入事务处理的原因和Oracle数据库的事务 175
6.15利用COMMIT和ROLLBACK语句控制事务 176
6.16有关事务处理应注意的一些问题 178
6.17练习题 179
第7章 Oracle系统的约束 181
7.1 Oracle系统提供的约束 181
7.2非空约束 181
7.3查看有关约束的信息 183
7.4唯一约束 184
7.5条件约束 187
7.6主键约束 189
7.7外键约束 192
7.8外键约束对DML语句和DDL语句的影响 194
7.9外键的ON DELETE SET NULL和ON DELETE CASCADE子句 195
7.10约束的维护 200
7.11约束小结 204
7.12练习题 205
第8章 视图、序列和同义词 207
8.1为什么引入视图 207
8.2使用视图的好处 208
8.3如何创建视图 210
8.4如何修改视图 212
8.5 Oracle系统如何管理视图 213
8.6如何使用视图来进行DML操作 214
8.7如何使用视图的WITH CHECKOPTION子句 215
8.8WITH READ ONLY子句的使用 216
8.9如何删除视图 218
8.10 ROWNUM的更多应用 219
8.11序列号的引入及创建序列号语句的格式 220
8.12如何创建序列号 222
8.13如何使用创建的序列号 223
8.14 NEXTVAL和CURRVAL虚(伪)列介绍和它们的使用规则 225
8.15 序列号的修改 226
8.16删除序列号 227
8.17同义词的引入及创建 228
8.18创建公用同义词及删除同义词 230
8.19练习题 232
第9章 Oracle的体系结构 234
9.1 Oracle引入复杂的体系结构的原因 234
9.2 Oracle数据库中常用的术语 235
9.3 Oracle数据库管理系统的体系结构 236
9.4 Oracle服务器的安装方式 237
9.5 Oracle实例和数据库以及其他的关键文件 237
9.6建立与Oracle实例的连接 238
9.7各种不同的连接方式 239
9.8服务器进程 239
9.9 Oracle执行SQL查询语句的步骤 240
9.10共享池(shared pool) 240
9.11数据库高速缓冲区(database buffer cache) 242
9.12内存缓冲区顾问(v$db_cache_advice) 243
9.13重做日志缓冲区(redo log buffer) 244
9.14大池(large pool)和Java池(Java pool) 244
9.15 内存缓冲区大小的设定 245
9.16内存缓冲区信息的获取 246
9.17重做日志写进程(LGWR)及快速提交(fast commit) 246
9.18数据库写进程(DBWR/DBWn) 247
9.19系统监督进程(SMON)和进程监督进程(PMON) 248
9.20校验点(checkpoint)和校验点进程 249
9.21归档日志(ARCH/ARCn)进程 249
9.22小结 250
9.23练习题 251
第10章 Oracle数据库管理工具与实例管理 253
10.1 Oracle通用安装程序(Oracle Universal Installer) 253
10.2 Oracle数据库配置助手(DBCA) 254
10.3数据库管理员用户sys和system 257
10.4 SQL*Plus命令行工具 257
10.5 Oracle 10g企业管理器(EM) 258
10.6初始化参数文件(initialization parameter files) 260
10.7静态参数文件(PFILE) 260
10.8动态服务器参数文件(SPFILE) 262
10.9启动数据库 264
10.10将数据库置为限制模式 266
10.11关闭数据库 268
10.12如何利用诊断文件来监督实例 269
10.13练习题 271
第11章 数据字典和控制文件 273
11.1数据字典简介 273
11.2数据字典的操作和使用 274
11.3格式化数据字典视图的输出 275
11.4如何使用数据字典视图 276
11.5动态性能表(视图) 278
11.6数据字典应用实例 279
11.7控制文件及控制文件中所存放的内容 283
11.8从控制文件中获取信息的数据字典 284
11.9如何限定控制文件的大小 284
11.10怎样查看控制文件的配置 285
11.11怎样添加和移动控制文件 286
11.12控制文件的备份 287
11.13虚拟环境的创建 288
11.14练习题 290
第12章 重做日志文件 292
12.1引入重做日志的目的 292
12.2重做日志组 293
12.3重做日志成员 294
12.4日志切换和检查点 294
12.5获取重做日志的信息 295
12.6添加和删除联机重做日志文件组 297
12.7添加和删除联机重做日志成员(文件) 299
12.8清除联机重做日志文件 301
12.9利用OMF来管理联机重做日志文件 304
12.10联机重做日志的配置 307
12.11练习题 308
第13章 表空间和数据文件的管理 310
13.1 Oracle引入逻辑结构的目的 310
13.2 Oracle数据库中存储结构之间的关系 310
13.3表空间和数据文件之间的关系及表空间的分类 311
13.4表空间中的磁盘空间管理 312
13.5创建本地管理的表空间 313
13.6还原表空间 315
13.7临时表空间 316
13.8默认临时表空间 318
13.9设置表空间为脱机 320
13.10只读(read-only)表空间 322
13.11重置表空间的大小 324
13.12移动数据文件的方法 325
13.13删除表空间 326
13.14利用OMF来管理表空间 329
13.15练习题 332
第14章 存储结构及其之间的关系和创建数据库 334
14.1各种类型的段 334
14.2存储子句的优先级 335
14.3区段(extent) 336
14.4数据库块(database block) 337
14.5自动的段空间管理 339
14.6创建数据库概述 340
14.7筹划和组织数据库优化而弹性的体系结构 340
14.8创建数据库的先决条件 342
14.9创建数据库的方法 343
14.10创建数据库过程中的排错 344
14.11利用Oracle Managed Files来创建数据库 345
14.12练习题 345
第15章 管理还原数据 347
15.1还原数据的管理方法 347
15.2 Oracle使用还原段的目的 348
15.3还原段的类型 349
15.4自动还原数据管理的概念和配置 349
15.5还原表空间的创建与维护 350
15.6还原表空间之间的切换 352
15.7删除还原表空间 354
15.8自动还原数据管理的一些参数 355
15.9获得还原数据的信息 356
15.10练习题 357
第16章 管理表 358
16.1存储数据的方法和Oracle内置数据类型 358
16.2 ROWID 360
16.3 Oracle数据行的结构 362
16.4创建普通表 363
16.5创建临时表 364
16.6表的维护和管理 366
16.7非分区表的重组 367
16.8列的维护 371
16.9表的截断和删除 373
16.10练习题 374
第17章 索引的管理与维护 375
17.1 Oracle引入索引的目的 375
17.2索引的分类 375
17.3 B-树索引 376
17.4位图索引 377
17.5 B-树索引和位图索引的比较 379
17.6创建索引 380
17.7重建和维护索引 383
17.8标识索引的使用情况 386
17.9删除索引 387
17.10练习题 388
第18章 用户及系统资源和安全的管理 390
18.1创建用户 390
18.2数据库模式 392
18.3改变用户在表空间上的配额 393
18.4删除用户 394
18.5用户的安全控制域 395
18.6概要文件(profiles) 396
18.7利用概要文件进行资源管理 396
18.8创建资源限制的概要文件 397
18.9口令管理 399
18.10口令验证函数 400
18.11创建口令限制的概要文件 401
18.12修改和删除概要文件 403
18.13创建概要文件的应用实例 405
18.14练习题 407
第19章 管理权限 408
19.1权限的分类以及系统权限 408
19.2系统权限的限制 410
19.3授予系统权限 410
19.4回收系统权限 415
19.5对象权限 418
19.6对象权限的授权和回收 418
19.7练习题 422
第20章 管理角色 424
20.1引入角色(role)的原因 424
20.2角色的创建 425
20.3角色的修改 426
20.4角色的授权 427
20.5建立默认角色 429
20.6激活和禁止角色 433
20.7角色的回收和删除 435
20.8创建和使用角色指南 439
20.9 Oracle预定义的角色 444
20.10用户、概要文件、权限和角色的应用实例 446
20.11练习题 453
参考文献 454