第一部分概览 1
第1章 关系数据库世界的探索 2
1.1 结构化查询语言(SQL) 3
1.2 Oracle产品系列 3
1.2.1 Oracle Universal Server(Oracle通用服务器) 4
1.2.2 Oracle Workgroup Server(Oracle工作组服务器) 4
1.2.3 Personal Oracle(人个Oracle) 4
1.3 其他Oracle产品 4
1.4 什么是客户/服务器计算 5
1.5 客户/服务器计算的起源 6
1.5.1 PC的诞生 7
1.5.2 PC数据库 7
1.5.3 LAN(局域网)数据库 7
1.5.4 关系数据库的诞生 8
1.5.5 中间件 8
1.5.6 应用开发工具 9
1.5.7 “胖”客户机与“瘦”客户机 9
1.5.8 CORBA(公用对象请求代理程序体系结构) 10
1.6 对客户/服务器计算的挑战:网络计算机 10
1.8 小结 11
1.7 本书的目的 11
1.9 下章内容简介 12
1.10 问与答 12
1.11 研习讨论 12
1.11.1 小测验 12
1.11.2 练习 12
第2章 开发Oracle应用系统的准则 13
2.1 已有教训 13
2.1.1 收集需求 14
2.1.2 设计和建立应用系统 15
2.1.4 实施应用系统 16
2.1.3 测试应用系统 16
2.1.5 维护应用系统 17
2.2 小结 17
2.3 下章内容简介 17
2.4 问与答 18
2.5 研习讨论 18
2.5.1 小测验 18
2.5.2 练习 18
第3章 逻辑数据库设计 19
3.1 关系数据库理论 19
3.3 主关键字 20
3.2 数据完整性 20
3.1.1 一个表是由行和列组成的 20
3.1.2 行的次序是任意的 20
3.1.3 列的次序是任意的 20
3.3.1 主关键字的任何部分不得是Null(空) 21
3.4 参照完整性 21
3.5 关系 21
3.6 Null值的概念 22
3.7 规范化 22
3.7.3 规范化规则3:所有的列依赖于主关键字并且完整依赖于主关键字 23
3.7.4 应用规范化进行数据库设计 23
3.7.2 规范化规则2:所有的列仅依赖于主关键字 23
3.7.1 规范化规则1:所有的列应为单一信息项 23
3.8 实体联系图解工具 24
3.9 样例应用数据库 25
3.9.1 需求 25
3.9.2 Student表 25
3.9.3 Department表 26
3.9.4 Instructor表 26
3.9.6 Class Location表 27
3.9.7 Schedule Type表 27
3.9.5 Course表 27
3.9.8 Schedule Type Details表 28
3.9.9 Class表 28
3.9.10 Student Schedule表 28
3.10 Oracle的术语:Connection(连接)、user(用户)和Session(会话) 29
3.10.1 数据库连接 29
3.12 创建新用户 30
3.12.1 用Personal Oracle Navigator(个人Oracle导航器)创建新用户 30
3.11 连接一个Oracle数据库 30
3.10.2 数据库用户 30
3.12.2 用Security Manager(安全管理器)创建新用户 32
3.13 Oracle数据类型 33
3.13.1 数值 33
3.13.2 串 35
3.13.3 日期和时间信息 36
3.13.4 大串 36
3.13.5 BLOB(二进制大对象) 37
3.14 小结 37
3.17.2 练习 38
3.17 研习讨论 38
3.17.1 小测验 38
3.16 问与答 38
3.15 下章内容简介 38
第4章 逻辑模型的实现:物理数据库设计 39
4.1 基本的CREATE TABLE语句 40
4.1.1 给表命名 40
4.1.2 给列命名 41
4.1.3 建表实例 41
4.1.4 标识主关键字 43
4.1.5 标识外关键字 44
4.1.6 用CHECK子句约束列值 46
4.1.7 建立列的默认值 47
4.2 使用ALTER TABLE修改表的定义 48
4.2.1 将列由NOT NULL改变为NULL 49
4.2.2 将列由NULL改变为NOT NULL 50
4.2.3 增加列宽 51
4.2.4 减少列宽 51
4.3 使用主关键字 52
4.3.1 建表时定义主关键字 52
4.3.2 建表后定义主关键字 54
4.4 外关键字和参照完整性 54
4.4.1 建表时声明外关键字 54
4.4.2 建表后声明外关键字 55
4.4.3 主关键字和外关键字列 56
4.4.4 撤消和实行关键字约束 57
4.4.5 撤消主关键字 57
4.4.6 撤消外关键字 59
4.5 声明唯一性约束 59
4.5.1 主关键字和唯一性约束的区别 60
4.6 表的索引 60
4.6.1 建立索引 61
4.6.2 不建唯一性索引的原因 62
4.7 观察约束 62
4.8 使用CHECK约束限制列值 63
4.8.1 某列可能具有多个CHECK约束 65
4.8.2 CHECK约束中参照其他列 66
4.8.3 CHECK约束中使用伪列 67
4.9 修改一个表时的一般限制 68
4.9.1 修改主关键字 68
4.10 建立样本数据库的程序 68
4.11 小结 72
4.12 下章内容简介 72
4.13 问和答 72
4.14.2 练习 73
4.14 研习讨论 73
4.14.1 小测验 73
第5章 结构化查询语言(SQL)简介 74
5.1 检索和修改数据 74
5.2 SQL(结构化查询语言)的语法 74
5.3 SELECT语句的语法 75
5.3.1 一条简单的SELECT语句 75
5.3.2 select列名表(Select List) 78
5.3.3 SELECT语句返回的结果 79
5.3.4 在select列名表中用表达式 79
5.4 用WHERE子句指定条件 82
5.3.5 内部函数 82
5.4.1 用AND和OR组合条件 83
5.5 用ORDER BY子句对数据排序 84
5.6 统计表中的行 85
5.7 找出列值为NULL(空)的行 86
5.8 用LIKE运算符查找行 88
5.9 用BETWEEN运算符查找行 91
5.10 IN运算符 92
5.11 使用别名引用列 94
5.12.1 用SELECE语句建立新表 95
5.12 如何使用子查询 95
5.13 小结 96
5.14 下章内容简介 97
5.15 问与答 97
5.16 研习讨论 97
5.16.1 小测验 98
5.16.2 练习 98
第6章 使用SQL修改数据 99
6.1 SQL数据操纵语言 99
6.2 使用INSERT追加行 99
6.2.1 INSERT语法 100
6.3 INSERT语句中指定列值 101
6.3.1 列和其值的数据类型必须匹配 102
6.3.2 使用伪列作为列值 103
6.3.3 为何在INSERT语句中应该声明列 104
6.4 使用INSERT语句进行子查询 105
6.4.1 带有子查询的INSERT语法 105
6.4.2 生成测试数据 106
6.5 使用UPDATE语句修改数据 107
6.5.1 UPDATE语句的基本语法 107
6.5.2 改变若干列的值 107
6.6 当成集合而不是纪录 108
6.7 使用带有子查询的UPDATE语句 110
6.8 使用DELETE语句删除数据 111
6.8.1 DELETE语句的语法 111
6.8.2 使用TRUNCATE TABLE语句删除所有的行 112
6.9 并发性 113
6.10 读取一致性和只读事项 113
6.11 将列值设置成NULL 113
6.11.2 使用UPDATE语句指定列值为NULL 114
6.11.1 在INSERT语句中指定NULL值 114
6.11.3 默认值和NULL 115
6.12 作业的逻辑单元——事项 115
6.12.1 使用COMMIT存储工作 116
6.12.2 使用ROLLBACK语句撤消改变 116
6.12.3 保存点 117
6.13 小结 118
6.14 下章内容简介 118
6.15 问与答 118
6.16.1 小测验 119
6.16.2 练习 119
6.16 研习讨论 119
第7章 使用SQL内部函数 120
7.1 操纵字符串 120
7.1.1 求字符串的长度 120
7.1.2 从字符串中提取子串 121
7.1.3 在字符串中查找模式 122
7.1.4 替换字符串的一部分 124
7.1.5 删除字符串的空格 126
7.1.6 填充串 128
7.1.7 LPAD(左填充函数) 128
7.1.9 改变字符串的大小写 130
7.1.8 RPAD(右填充函数) 130
7.1.10 使用DECODE函数(值转换函数)转换字符串 133
7.1.11 转换字符串为ASCII值 134
7.2 操纵日期 134
7.2.1 Oracle的date数据类型 135
7.2.2 使用date数据类型存储时间信息 135
7.2.3 当前日期和时间:SYSDATE 136
7.2.4 Oracle时间格式模式 136
7.2.5 Oracle默认日期格式 138
7.2.6 转换日期为字符串 138
7.2.8 日期和时间 140
7.2.7 转换字符串为日期 140
7.2.9 计算两个日期的差值 141
7.3 指定数值类型列 141
7.3.1 Oracle是如何存储数值的 143
7.3.2 将数值转换成字符串 144
7.3.3 自动转换数字为字符串 144
7.3.4 使用TO_CHAR函数转换数值为字符串 145
7.3.5 将字符串转换成数 146
7.3.6 使用统计内部函数 147
7.3.7 四舍五入函数和截取函数 147
7.3.9 确定某值是否为NULL 149
7.3.8 求最大或最小值 149
7.4 小结 151
7.5 下章内容简介 152
7.6 问与答 152
7.7 研习讨论 152
7.7.1 小测验 153
7.7.2 练习 153
第一部分复习 154
第二部分概览 155
8.1.1 COUNT函数 156
8.1 内部聚组函数 156
第8章 用SQL进行高级检索 156
8.1.2 获取最大值和最小值 157
8.1.3 AVG和SUM的使用 157
8.1.4 将聚组函数与其他列结合起来 158
8.2 查找相异的行 158
8.3 对行进行分组 159
8.4 对层次信息的处理 162
8.4.1 EXITST运算符的使用 165
8.5 连接操作 166
8.5.1 两个表的简单连接 167
8.5.2 当心笛卡尔乘积 170
8.5.3 多表连接 171
8.5.4 自身连接 172
8.5.5 外部连接 172
8.6 在SELECT语句中使用集合操作 174
8.6.1 INTERSECE(交)运算符 175
8.6.2 UNION(并)运算符 177
8.6.3 MINUS(差)运算符 180
8.7 用另一个表建立表 181
8.8 视图的使用 183
8.8.1 视图语法 183
8.8.2 通过视图检索数据 185
8.8.3 用视图隐藏复杂性 186
8.9 小结 187
8.10 下章内容简介 187
8.11 问与答 187
8.12 研习讨论 187
8.12.1 小测验 188
8.12.2 练习 188
第9章 用PL/SQL对Oracle数据库编程 189
9.1 程序块结构语言PL/SQL 189
9.1.3 例外处理部分 191
9.2 用PL/SQL说明变量 191
9.1.1 说明部分 191
9.1.2 执行部分 191
9.2.1 用%TYPE说明一个变量 192
9.2.2 用%ROWTYPE说明一个变量 192
9.3 一些常见的控制结构 193
9.3.1 IF语句 193
9.3.2 简单的LOOP语句 194
9.3.3 EXIT语句 194
9.3.5 FOR-LOOP语句 195
9.3.4 WHILE-LOOP语句 195
9.3.6 GOTO语句 196
9.3.7 NULL语句 196
9.3.8 赋值语句 197
9.3.9 在PL/SQL子程序中加入注释 197
9.4 在PL/SQL程序中使用SQL语句 197
9.4.1 PL/SQL和SELECT语句 198
9.5 PL/SQL子程序 199
9.6 子块的应用 199
9.7 过程的说明 200
9.8 函数的说明 203
9.8.1 过程和函数的参数 205
9.9 小结 206
9.10 下章内容简介 207
9.11 问与答 207
9.12 研习讨论 207
9.12.1 小测验 207
9.12.2 练习 207
第10章 用PL/SQL进行程序开发 208
10.1 建立存储过程或函数 208
10.1.1 在建立存储过程时获取错误信息 211
10.2 检索存储过程 212
10.2.1 获得过程、函数、包或包体的目录列表 213
10.3 过程和函数的提前说明 214
10.4 在SQL语句中使用存储函数 216
10.5 将结果存储到表中 217
10.6 调用存储过程或函数 218
10.7 包 218
10.7.1 包的说明 218
10.7.2 包体的说明 219
10.8 附加PL/SQL数据类型 227
10.8.1 BOOLEAN(布尔)数据类型 227
10.7.3 设计一个用于数据库触发器的包 227
10.8.2 BINARY_INTEGER(二进制整数)数据类型 229
10.8.3 %TYPE类型的使用 229
10.8.4 %ROWTYPE类型的使用 230
10.8.5 更复杂的数据类型:Tables(表)和Records(记录) 233
10.8.6 PL/SQL表的说明 234
10.8.7 用户定义记录的说明 237
10.9 设定变量默认值 238
10.10 小结 239
10.13.2 练习 240
10.13.1 小测验 240
10.12 问与答 240
10.13 研习讨论 240
10.11 下章内容简介 240
第11章 PL/SQL编程的高级技术 241
11.1 在PL/SQL中处理错误 241
11.2 例外部分 241
11.3 预定义例外 243
11.3.1 DUP_VAL_ON_INDEX例外 244
11.3.2 INVALID_NUMBER例外 244
11.3.3 NO_DATA_FOUND例外 245
11.3.4 TOO_MANY_ROWS例外 246
11.3.5 VALUE_ERROR例外 247
11.4 例外说明 248
11.5 成功或失败:查看SQLCODE和SQLERRM 248
11.6 用RAISE_APPLICATION_ERROR返回错误 250
11.7 使用游标检索数据 251
11.7.1 说明游标 254
11.7.2 打开游标 255
11.7.3 从游标取出行 258
11.7.4 关闭游标 259
11.8 使用游标进行FOR循环 261
11.10 用%ROWCOUNT获取行的行数 263
11.9 是%FOUND还是%NOFOUND 263
11.11 用数据库触发器执行事务规则 265
11.12 建立触发器 266
11.12.1 语句级和行级触发器 266
11.12.2 在触发器体内引用列值 267
11.12.3 触发事件 267
11.12.4 事前和事后行级触发器 267
11.13 用触发器对列值进行有效性检验 268
11.12.5 一个表可能的触发器 268
11.14 使用触发器加强安全性 270
11.15 使用触发器设置列的值 271
11.16 级联触发器 273
11.17 在触发器中不能使用COMMIT和ROLLBACK 276
11.18 从触发器中调用存储过程 276
11.19 对触发器的删除、启动和废止 277
11.20 小结 278
11.23.2 练习 279
11.23 研习讨论 279
11.23.1 小测验 279
11.22 问与答 279
11.21 下章内容简介 279
第12章 Developer/2000:Oracle Forms(Oracle表格)介绍 281
12.1 什么是Developer/2000? 281
12.2 用Forms Designer(表格设计器)建立简单表格 281
12.2.1 连接到一个Oracle数据库 282
12.2.2 创建新块 283
12.2.3 检测新表格 285
12.2.4 导航表格 287
12.2.5 Oracle Forms查询方式 287
12.2.6 使用Oracle Forms修改记录 289
12.2.7 存储表格 290
12.3 Oracle Forms的元素 291
12.3.1 表格 292
12.3.2 菜单 292
12.3.3 程序库 292
12.4 表格元素 292
12.4.1 对象导航器的功能 293
12.4.2 对象的特性 294
12.4.3 块 294
12.4.4 画布背景视图 296
12.4.6 触发器 297
12.4.5 窗口 297
12.4.7 记录组 298
12.4.8 LOV(值列表) 299
12.4.9 警告 299
12.1.10 参数 299
12.5 使用Registry Editor(注册编辑器)修改Oracle的组成 299
12.6 小结 300
12.9.1 小测验 301
12.9 研习讨论 301
12.8 问与答 301
12.7 下章内容简介 301
12.9.2 练习 302
第13章 Developer/2000:使用Oracle Forms(Oracle表格)开发用户界面 303
13.1 建立主-明细表格 303
13.1.1 定义主块 303
13.1.2 定义明细块 305
13.1.3 定义关系 306
13.2 使用Layout Editor工作 307
13.2.1 格式化文本 307
13.2.2 调整对象的尺寸 308
13.2.4 调整尺寸、分隔、排列对象 310
13.2.3 修改文本 310
13.3 运行主-明细表格 312
13.4 改进表格 313
13.4.1 控制块项目位置的顺序 314
13.4.2 建立一个值列表(LOV) 315
13.5 小结 319
13.6 下章内容简介 319
13.7 问与答 319
13.8.1 小测验 320
13.8.2 练习 320
13.8 研习讨论 320
第14章 Developer/2000:使用Oracle Forms(Oracle表格)进行应用系统开发 321
14.1 触发器概述 321
14.1.1 默认触发器 321
14.2 用触发器从其它表恢复值 323
14.3 用表格级触发器执行查询 328
14.4 用触发器检验用户输入的有效性 329
14.5 菜单的元素 331
14.6 建立菜单 331
14.6.1 组成新菜单 332
14.6.2 给菜单增加项目 333
14.7 建立多表格应用系统 334
14.6.4 生成菜单 334
14.6.3 保存菜单 334
14.8 建立窗口快捷运行应用程序 336
14.8.1 关闭表格 336
14.9 小结 337
14.10 下章内容简介 337
14.11 问与答 337
14.12 研习讨论 338
14.12.1 小测验 338
14.12.2 练习 338
第二部分复习 339
第三部分概览 340
第15章 Developer/2000:使用Oracle Reports(Oracle报表)开发报表 341
15.1 Oracle报表的元素 341
15.1.1 数据模型 341
15.1.2 版面布局 341
15.1.3 参数格式 342
15.2 Oracle Reports程序 342
15.3 建立基于单表的表格式报表 342
15.3.1 与Oracle数据库连接 343
15.3.2 创建数据模型 343
15.3.3 设定默认版面布局 345
15.3.4 调整对象尺寸和排列对象 348
15.3.5 向报表中添加标题、日期和页码 349
15.3.6 测试报表 350
15.3.7 打印报表 351
15.3.8 存储报表 351
15.4 建立主-明细报表 352
15.4.1 创建数据模型 352
15.4.2 设定默认布局 354
15.4.3 测试报表 356
15.5 使用格式触发器 357
15.4.4 生成报表的运行版本 357
15.6 创建运行报表的快捷键 358
15.7 从Oracle表格中调用报表 359
15.8 小结 360
15.9 下章内容简介 361
15.10 问与答 361
15.11 研习讨论 361
15.10.1 小测验 361
15.10.2 练习 361
16.3 用Graphics Designer制作图表 362
16.2 Oracle Graphics的元素 362
16.1 Oracle Graphics的角色 362
第16章 Developer/2000:使用Oracle Graphics和Procedure Builder 362
16.3.1 连接Oracle数据库 363
16.3.2 创建新图表 363
16.3.3 选择图表类型 364
16.3.4 定制图表布局 365
16.4 存储图表 366
16.4.1 创建运行图表的快捷键 366
16.6 Procedure Builder的元素 367
16.5 应用开发过程中Procedure Builder的角色 367
16.6.1 连接Oracle数据库 368
16.7 使用Procedure Builder的Object Navigator(对象导航器) 368
16.7.1 Program Unit Editor(程序单元编辑器) 369
16.7.2 PL/SQL Interpreter(PL/SQL解释器) 369
16.7.3 Stored Program Unit Editor(存储程序单元编辑器) 370
16.7.4 Database Trigger Editor(数据库触发器编辑器) 371
16.8 浏览和编辑存储程序单元 371
16.9 用Database Trigger Editor创建数据库触发器 374
16.9.1 测试新数据库触发器 377
16.11 下章内容简介 379
16.12 问与答 379
16.10 小结 379
16.13 研习讨论 380
16.13.1 小测验 380
16.13.2 练习 380
第17章 Oracle Power Objects简介 381
17.1 Oracle Power Objects应用的元素 381
17.2 创建新会话 382
17.2.1 浏览数据库对象的定义 383
17.2.2 浏览和修改数据库对象的内容 384
17.3 创建新应用 386
17.4 创建表格 387
17.4.1 向表格中添加控制 388
17.4.2 测试表格 390
17.4.3 向表格中添加滚动条 391
17.4.4 设定表格的检索次序 392
17.4.5 给表格命名 392
17.5 创建主-明细表格 392
17.6 使用单选按钮 395
17.7 显示查找字段 398
17.8 小结 399
17.11.2 练习 400
17.11.1 小测验 400
17.11 研习讨论 400
17.10 问与答 400
17.9 下章内容简介 400
第18章 使用Oracle Power Objects开发应用系统 401
18.1 方法和方法代码 401
18.2 确认用户输入的有效性 403
18.3 在一个表格中显示计算值 404
18.4 创建一个类 405
18.5 给一个表格添加一个类的实例 407
18.5.1 给类增加方法代码 408
18.5.3 超越继承的类特征值 409
18.5.2 改变类对象的特征值 409
18.5.4 超越继承的类方法 410
18.6 建立一个Oracle Power Object报表 411
18.7 报表的各部分 412
18.8 报表对象的设定 412
18.8.1 PageHeader区的设定 413
18.8.2 GroupHeader区的设定 414
18.8.3 Detail区的设定 415
18.8.4 给报表中增加查找字段 416
18.9 小结 417
18.12.1 小测验 418
18.12 研习讨论 418
18.10 下章内容简介 418
18.11 问与答 418
18.12.2 练习 419
第19章 Oracle数据库的安全和性能调整简介 420
19.1 用户和角色 420
19.1.1 预定义用户:SYS和SYSTEM 420
19.1.2 预定义角色 421
19.2 系统和对象权限 421
19.3 角色的创建和使用 421
19.5 优化性能的障碍 424
19.4 使用配置文件限制用户资源 424
19.6 同义词 425
19.6.1 同义词语法 425
19.6.2 删除同义词 426
19.6.3 使用public同义词隐藏表的所属关系 426
19.7 同义词、导航器和模式管理器 427
19.7.1 使用Navigator检查同义词 428
19.7.2 使用Navigator创建同义词 428
19.8 哪里会是瓶颈 429
19.8.1 网络 429
19.7.3 使用Navigator删除同义词 429
19.8.2 确认应用系统的瓶颈所在 430
19.8.3 使用EXPLAIN PLAN为SQL语句决定行计划 430
19.8.4 创建索引改进性能 434
19.8.5 调整Oracle数据库 434
19.9 小结 435
19.12 研习讨论 436
19.12.1 小测验 436
19.12.2 练习 436
19.11 问与答 436
19.10 下章内容简介 436
第20章 使用Oracle Database Designer和Oracle Developer/2000进行应用系统开发 437
20.1 使用Database Designer创建实体-关系图 438
20.2 给图增加一个表 439
20.3 指定表的列 440
20.4 指定表的约束 441
20.5 指定外关键字 443
20.6 为图生成DDL语句 444
20.7 使用Database Designer对 Oracle数据库进行反工程转换 446
20.8 Designer/2000的基本组成 448
20.8.3 Function Hierarehy Diagrammer(功能层次图解图) 449
20.8.2 Entity Relationship Diagrammer(实体关系图解器) 449
20.8.1 Process Modeller(处理模型器) 449
20.8.4 Database Designer(数据库设计向导)Application Design Wizards(应用设计向导) 450
20.8.5 Module Structure Diagrammer(模块结构图解器) 450
20.9 小结 451
20.10 问与答 451
20.11 研习讨论 452
20.11.1 小测验 452
第21章 Oracle的下一代 453
21.1 将Oracle数据库连接到Web:Oracle WebServer的应用 453
21.2 Oracle WebServer的组成元素 453
21.2.1 Web Listener(Web收听器) 455
21.2.2 Web Application Server Administration(Web应用服务器管理) 456
21.2.3 Database Access Descriptor*(DAD)Administration(数据库访问描述器(DAD)管理) 457
21.2.4 Web Request Broker Administration(Web请求代理管理) 458
21.2.5 Cartridge Administration(盒式磁盘机管理) 459
21.2.6 专用的PL/SQL包:htp和htf 460
21.2.7 使用存储过程生成动态HTML 460
21.3 Developer/2000 For the Web(用于Web的Developer/2000) 461
21.3.1 为Web配置Oracle Forms 463
21.3.2 使用Developer/2000 for Web进行开发的几点考虑 464
21.4 Oracle的网络计算体系结构 465
21.4.2 CORBA(公用对象请求代理程序体系结构) 466
21.4.1 网络计算体系结构简介 466
21.4.3 网络计算体系结构的组成 467
21.4.4 盒式磁盘机 467
21.4.5 内部盒式磁盘机交换 467
21.5 小结 468
21.6 问与答 468
21.7 研习讨论 468
21.7.1 小测验 468
第三部分复习 469
22.1 定义数据库轮廓文件 470
第22章 (附录1)在PowerBuilder中使用Oracle数据库 470
22.2 建立DataWindow(数据窗口) 473
22.3 使用Oracle处理错误 476
22.4 小结 477
第23章 (附录2)Oracle8的新功能 479
23.1 现有数据类型的增强和一些新数据类型 479
23.1 大对象或者LOB 480
23.1.1 使用CLOB 480
23.2 用Oracle Object Option(Oracle对象选件)获得新数据类型 483
23.2.1 对象数据类型 484
23.2.2 嵌套表 485
23.2.3 VARRAY数据类型 486
23.2.4 用于用户定义类型的数据字典视图 488
23.3 对SELECT语句修改 489
23.4 引用外部过程 490
23.5 对象视图 490
23.6 开发考虑事项 491
23.7 小结 492
A1.2 练习 493
A1.1 小测验 493
第1章 关系数据库世界的探索 493
附录A: 小测验与练习答案 493
第2章 开发Oracle应用系统的准则 494
A2.1 小测验 494
A2.2 练习 494
第3章 逻辑数据库设计 495
A.3.1 小测验 495
A3.2 练习 496
第4章 逻辑模型的实现:物理数据库设计 497
A4.1 小测验 497
A4.2 练习 497
A5.1 小测验 498
第5章 结构化查询语言(SQL)简介 498
A5.2 练习 499
第6章 使用SQL修改数据 499
A6.1 小测验 499
A6.2 练习 500
第7章 使用SQL内部函数 502
A7.1 小测验 502
A7.2 练习 502
A8.1 小测验 503
第8章 用SQL进行高级检索 503
A8.2 练习 505
第9章 用PL/SQL对Oracle数据库编程 506
A9.1 小测验 506
A9.2 练习 507
第10章 用PL/SQL进行程序开发 508
A10.1 小测验 508
A10.2 练习 509
第11章 用PL/SQL编程的高级技术 512
A11.1 小测验 512
A11.2 练习 512
A12.1 小测验 516
第12章 Developer/2000:()Oracle Forms(Oracle表格)介绍 516
第13章 Developer/2000:使用Oracle Forms(Oracle表格)开发用户界面 517
A13.1 小测验 517
第14章 Developer/2000:使用Oracle Forms(Oracle表格)进行应用系统开发 517
A14.1 小测验 517
第15章 Developer/2000:使用Oracle Reports(Oracle报表)开发报表 518
A15.1 小测验 518
第16章 Developer/2000:使用Oracle Graphics和Procedure Builder 518
A16.1 小测验 518
第18章 使用Oracle Power Objects开发应用系统 519
A18.1 小测验 519
A17.1 小测验 519
A17.2 练习 519
第17章 Oracle Power Object简介 519
A18.2 练习 520
第19章 Oracle数据库安全和性能调整简介 520
A19.1 小测验 520
A19.2 练习 520
第20章 使用Oracle Database Designer和Oracle Developer/2000进行应用系统开发 522
A20.1 小测验 522
第21章 Oracle的下一代 522
A21.1 小测验 522