第一部分 数据库对象的设计 1
第1章 Oracle工具介绍 1
1.1 Oracle公司介绍 1
1.2 Oracle7——Oracle公司的数据库产品 1
1.2.1 Oracle8——下一代数据库 2
1.2.2 SQL*PLUS——Oracle的数据库语言 3
1.2.3 其他Oracle产品 3
1.2.4 Designer 2000 3
1.2.5 Personal Oracle7 3
1.3 本书中的习惯用法以及技术术语 3
1.4 小结 3
2.1 什么是关系型数据库 5
第2章 数据库设计 5
2.2 数据库组件 7
2.2.1 表空间 8
2.2.2 表和字段 8
2.2.3 索引 9
2.2.4 视图 10
2.2.5 同义词 11
2.2.6 授权与角色(Roles) 11
2.3 关系数据库的设计 11
2.3.1 数据库术语 12
2.3.2 数据库设计的描述 13
2.3.3 数据库表 14
2.3.4 数据的规范化(Normalizing) 15
2.7 雇员数据库项目第一阶段 18
2.6 习题 18
2.4 小结 18
2.5 我们还将学到 18
第3章 使用Select命令获取数据 21
3.1 登录到SQL*PLUS 21
3.2 SQL*PLUS编辑器 22
3.3 Select命令格式详解 24
3.3.1 Select子句 24
3.3.5 Having子句 25
3.3.6 Order By子句 25
3.3.7 简单的Select语句 25
3.3.4 Group by子句 25
3.3.3 Where子句 25
3.3.2 From子句 25
3.4 记录排序 26
3.5 带条件的Select语句 27
3.5.1 等于符(=) 28
3.5.2 不等符(<>或!=) 29
3.5.3 大于(>)和小于(<) 29
3.5.4 使用IN操作符 31
3.5.5 使用Retween操作符 31
3.5.6 使用LIKE操作符 31
3.5.7 使用NOT操作符 32
3.5.8 理解多重条件 33
3.5.9 变量的使用 34
3.5.10 字段的算术运算和连接字符串 35
3.7 日期运算 37
3.6 理解NULL值和表达式 37
3.8 字符串函数 39
3.8.1 Length函数 39
3.8.2 Lpad函数 40
3.8.3 Ltrim函数 40
3.8.4 Rpad函数 41
3.8.5 Rtrim函数 41
3.8.6 Substr函数 42
3.9 Decode函数 42
3.10 数值函数的应用 43
3.10.1 NVL函数 44
3.10.2 Round函数 44
3.10.3 Trunc函数 44
3.11.1 Add Months函数 45
3.11 日期函数 45
3.11.2 Months Between函数 46
3.11.3 Next Day函数 46
3.12 日期描述符 47
3.13 聚组函数 49
3.13.1 Average函数 49
3.13.2 Count函数 50
3.13.3多重聚组函数 50
3.14 理解Group By函数 51
3.15 理解Having子句 52
3.16 理解子查询或子选择 52
3.17 理解伪字段,dual表,Describe命令和Tab Table 54
3.18 小结 55
3.20 习题 56
3.19 我们还将学到 56
第4章 SQL*PLUS中的报表设计 57
4.1 创建报表标题 57
第二部分 使用SQL*PLUS对数据库进行操作 57
4.2 创建一个报表的页脚(footer) 59
4.3 报表的列的设计 60
4.4 数字的格式设计 62
4.5 页暂停的定义 63
4.6 数据运算的定义 66
4.7 设定环境 67
4.8 小结 69
4.9 我们还将学到 69
4.10 习题 69
5.1 在关系型数据库及对象数据库中进行数据的组合 71
第5章 表及记录的连接 71
5.2 字段的限定 73
5.3 应用多个连接 74
5.4 一对多关系中表连接的错误 75
5.4.1 表连接所引起的计算偏差 75
5.4.2 当数值仅存在于一个参加连接的表时所发生的问题 76
5.4.3 由数据格式不匹配而引起的性能问题 76
5.5 外部连接 77
5.6 集合操作符 78
5.6.1 Union(并集) 78
5.6.2 Minus(差集) 79
5.6.3 Intersect(交集) 80
5.8 小结 81
5.7 用 Oracle8组合数据 81
5.9 我们还将学到 82
5.10 习题 82
第6章 数据库对象的定义 83
6.1 定义表项 83
6.2 表的创建、更改和删除 85
6.3 表的修改 86
6.4 定义表的约束条件 87
6.4.1 Check约束 88
6.4.2 Default(默认)选项 88
6.4.3 Foreign Key(外部关键字)约束 88
6.4.4 Not Null(非空)约束 90
6.4.5 Unique(唯一性)约束 90
6.4.6 Primary Key(主关键字)约束 91
6.4.7 约束的禁止(disable) 92
6.5 索引的定义 92
6.6 视图的创建与删除 93
6.7创建同义词(synonyms) 95
6.8 创建数据库链接 96
6.9 创建用户帐号 97
6.10 创建数据库权限 97
6.11 对用户表授予存取权 100
6.12 创建表空间 101
6.13 定义一个序列 102
6.14 定义数据库触发器 103
6.15 Oracle8 数据库对象 104
6.15.2 索引的分区 105
6.15.1 修改分区 105
6.15.3 创建类型 106
6.15.4 使用Varray 106
6.16 小结 107
6.17 我们还将学到 107
6.18 习题 107
6.19 雇员数据库项目的第二阶段 108
第7章 使用DML命令对表进行修改 109
7.1 向表中添加记录 109
7.2 更新表中的字段 110
7.3 删除表中的记录 113
7.4 保存修改结果 115
7.5 小结 116
7.7 习题 117
7.6 我们还将学到 117
第三部分 PL/SQL: Oracle的编程语言 119
第8章 创建第一个PL/SQL程序 119
8.1 如何理解PL/SQL 119
8.1.1 理解PL/SQL块 120
8.1.2 嵌套的块和块标号 121
8.1.3 定义PL/SQL变量 122
8.1.4 使用%TYPE和%ROWTYPE 122
8.1.5 对变量进行赋值 123
8.2 使用If-Then-Else逻辑 124
8.2.1 使用嵌套的if语句 126
8.2.2 在if语句中使用elseif 127
8.3 使用循环和退出 128
8.4 怎样理解PL/SQL游标(cursors) 130
8.5 确定例外事件 132
8.6 记录并显示错误 133
8.6.1 重新定义标准错误事件的名称 135
8.6.2 用于用户自定义的例外事件的Exception部分 135
8.7 小结 137
8.8 我们还将学到 137
8.9 习题 137
第9章 增强PL/SQL块的功能 139
9.1 游标属性的使用 139
9.1 0.000000ound属性的使用 139
9.1.2 %rowcount属性的使用 141
9.1.3 316sopen属性的使用 142
9.1.4 显式游标及隐式游标 142
9.2.1 创建及使用对数字的For循环 145
9.2 For循环的使用 145
9.2.2 创建及使用对游标的for循环 147
9.3 For Update Of的使用 150
9.4 Where Current Of选项的使用 151
9.5 被命名过程的创建及使用 152
9.6 函数的创建及使用 154
9.7 包的创建及使用 156
9.7.1 包的结构 157
9.7.2 创建一个包的定义 158
9.7.3 包体部分的创建 159
9.7.4 从应用程序中调用包的对象 160
9.8 小结 162
9.10 习题 163
9.9 我们还将学到 163
第10章 SQL*LOADER的使用 165
10.1 理解SQL*LOADER 165
10.2 怎样启动SQL*LOADER 166
10.3 各种加载文件的使用 169
10.3.1 日志文件的使用 169
10.3.2 坏记录文件的使用 172
10.3.3 废弃记录文件的使用 173
10.4 控制文件的定义 173
10.4.1 简单控制文件的定义 173
10.4.2 加载方式的定义 174
10.4.3 数据格式的定义 175
10.5 控制文件中逻辑条件的定义 176
10.6 使用同一加载过程加载多个表 177
10.7 其他控制文件的关键字和子句 178
10.8 Option子句和Recoverable/Unrecoverable子句 179
10.8.1 Into Table子句 179
10.8.2 Concatenation子句和Continueif子句 181
10.9 从命令行中执行SQL*LOADER 182
10.10 小结 183
10.11 我们还将学到 184
10.12 习题 184
10.13 雇员数据库项目的第三阶段 184
第四部分 Oracle的用户界面(Oracle Forms4.5) 187
第11章 Oracle Forms的使用 187
11.1什么是Form? 187
11.2 一个Form的例子 188
11.3 Form的一些术语 189
11.4 Developer2000的Oracle Forms应用 189
11.5 在Forms Runtime中执行一个Form 190
11.6 Form操作模式 191
11.6.1 Form的输入模式 191
11.6.2 Form的查询模式 192
11.6.3 Form的修改模式 193
11.6.4 在一个Active Form中使用功能键 193
11.7 在一个Active Form中查询一个记录 194
11.8 其他Form过程 196
11.8.1 置Form为输入模式 196
11.9 小结 197
11.8.3 错误的显示 197
11.8.2 修改结果的保存 197
11.10 我们还将学到 199
11.11 习题 199
第12章 利用对象导航器创建第一个Oracle Form 200
12.1 进入Forms Designer 200
12.2 对象导航器的使用 201
12.2.1 对象的扩展与折叠 202
12.2.2 在对象导航器中定义Form对象 202
12.2.3 对象导航器工具面板 203
12.3 Forms Designer中的菜单选项 205
12.3.1 File菜单项 205
12.3.2 Edit菜单 209
12.3.3 Tools菜单项 212
12.3.4 Navigator菜单 217
12.4 创建第一个Form 218
12.4.1 创建一个简单的单块Form的步骤 219
12.4.2 创建Form 219
12.5 小结 224
12.6 我们还将学到 224
12.7 习题 224
第13章 Form的设计 226
13.1 版面编辑器 226
13.2 版面编辑器的菜单条 227
13.2.1 View下拉菜单 227
13.2.2 Format(格式)下拉菜单的使用 235
13.2.3 Arrange(安排)下拉菜单的使用 240
13.3.2 旋转(Rotate)工具 245
13.3.1 选择(Select)工具 245
13.3 版面编辑器工具面板的使用 245
13.3.3 整形(Reshape)工具 246
13.3.4 图形形状工具 246
13.3.5 项(Item)工具 247
13.3.6 对象着色(Object Coloring)工具 249
13.4 画板属性 251
13.4.1 打开画板属性页(Sheet) 252
13.4.2 画板属性页(Sheet) 252
13.4.3 复查与设定画板属性 254
13.5 定义窗口(Window)属性 255
13.6 设计Employee Form 257
13.7 小结 260
13.9 习题 261
13.8 我们还将学到 261
第14章 创建及修改主-从(Master-Detail)Form 262
14.1 将块添加到Employee Update Form中 262
14.1.1 创建Tools从块 262
14.1.2 块所对应的对象及其设定 264
14.1.3 格式化Tools块 265
14.1.4 创建Glasses块 265
14.2 了解Form属性 267
14.2.1 Coordinate Information属性 269
14.2.2 使用Current Record Attribute(当前记录属性) 269
14.2.3 定义一个可视属性(Attribute) 271
14.3 了解块属性 271
14.3.2 改变Navigation Style 273
14.3.1 使用Order By和Where Clause块属性 273
14.4 了解项属性(Item Properties) 274
14.4.1 Multi-Line属性的使用 278
14.4.2 关于一些实用的文本项属性的说明 278
14.5 了解项类型 280
14.5.1 检查框(Check box) 281
14.5.2 圆形按钮组(Radio Group) 282
14.5.3 列表(List Item)项 283
14.5.4 图像(Image)的使用 285
14.6 创建List of Values 287
14.6.1 LOV的调用 291
14.6.2 通过按钮显示LOV 291
14.6.3 调整Record Group 293
14.8 小结 294
14.7 了解Relation(关系)属性 294
14.10 习题 295
14.9 我们还将学到 295
第15章 触发器的使用及属性类的修改 296
15.1 什么是触发器 296
15.1.1 触发器事件 297
15.1.2 触发器名称 297
15.1.3 触发器错误 297
15.1.4 触发器的级别 298
15.1.5 创建一个触发器 298
15.2 PL/SQL编辑器的使用 300
15.3 内置子程序的使用 301
15.4 系统变量和全局变量的使用 302
15.5.1 Form安全触发器 304
15.5 使用触发器和程序单元检查用户的安全措施 304
15.5.2 Form过程的使用 305
15.6 在不基于表的块中文本项的添加和录入 307
15.7 警告信息的使用 310
15.8 利用触发器改变Form的画板 312
15.9 属性类的使用 315
15.10 创建、修改以及使用属性类 316
15.10.1 在同一时刻查看两个属性页 318
15.10.2 Intersection/Union工具的使用 318
15.11 小结 318
15.12 我们还将学到 319
15.13 习题 319
16.1 Form的调用 320
第16章 调用其他的Forms及菜单的使用 320
16.1.1 Call_Form子程序的使用 321
16.1.2 New_Form子程序的使用 321
16.1.3 在Call_Form子程序中使用hide和no_hide选项 322
16.2 创建及使用Directory 324
16.2.1 创建一个Directory 324
16.2.2 创建Employee Directory 325
16.2.3 对Employee Directory进行操作 329
16.2.4 从Employee Directory中调用其他的Forms 329
16.3 创建及使用菜单将各个应用连接到一个系统中 332
16.3.1 创建一个菜单 332
16.3.2 创建并实现一个Employee System菜单 334
16.3.3 开发一个系统启动(System Startup)应用 336
16.4 创建一个工具条 340
16.5 小结 344
16.6 我们还将学到 345
16.7 雇员数据库项目第四阶段 345
第五部分 Oracle的报表书写器:Oracle Reports2.5 347
第17章 创建第一个报表 347
17.1 打开Oracle Reports2.5 347
17.1.1 不指定报表名而打开Reports Runtime 348
17.1.2 从Form中执行一个报表 350
17.1.3 打开ReportsDesigner 351
17.2 创建第一个报表 351
17.2.1 创建一个简单报表的步骤 351
17.2.2 创建一个Employee Listing(雇员列表) 352
17.2.3 执行Employee Listing 356
17.3 Designer菜单项 357
17.4 了解对象导航器 363
17.4.1 对象导航器的对象 364
17.4.2 对象导航器工具栏 365
17.5 了解数据模型 366
17.6 了解数据模型编辑器的Tools 367
17.7 小结 368
17.8 我们还将学到 369
17.9 习题 369
第18章 报表的用户化及高级报表功能 370
18.1 概述Layout Editor对象 370
18.2 版面编辑器的菜单项 371
18.2.1 Edit(编辑)菜单项 372
18.2.2 View(查看)菜单项 372
18.2.3 Format(格式)菜单项 374
18.2.4 Arrange(安排)菜单项 375
18.3 版面编辑器的工具 377
18.3.1 工具条 377
18.3.2 工具面板 377
18.4 版面对象属性 378
18.4.1 公共属性页 378
18.4.2 特殊属性页 381
18.5 创建美观的报表 382
18.5.1 更改不同对象的字体 383
18.5.2 更改列标题的文本 383
18.5.3 删除点状线以及线段变换 383
18.5.4 添加一个报表标题 383
18.6 从零开始创建一个报表版面 384
18.5.8 添加页道和结束页 384
18.5.5 添加页号和报表日期 384
18.5.6 更改域的位置 384
18.5.7 格式化域,调整域尺寸 384
18.6.1 添加一个重复框架 385
18.6.2 添加域到版面 385
18.6.3 添加静态文本到版面 387
18.6.4 使框架更完美 387
18.7 添加公式列和汇总列 388
18.7.1 汇总列 388
18.7.2 公式列 389
18.8 小结 390
18.9 我们还将学到 390
18.10 习题 390
19.1 Web应用是怎样实现的 391
19.1.1 三级Web存取的描述 391
第六部分 Web中的Oracle应用 391
第19章 将Oracle应用放到Web中 391
19.1.2 Web应用的优点 392
19.2 所需软件及软件所安装的位置 392
19.2.1 前端所需软件 392
19.2.2 中间件或应用服务器的软件 393
19.2.3 后端或数据库服务器的软件 394
19.2.4 本章所用的软件配置 394
19.3 在Web上建立Oracle Forms 394
19.3.1 插件与非插件实现 395
19.3.2 两种实现的通用设置 395
19.3.3 插件实现的要求 396
19.3.4 非插件的实现 401
19.3.5 从Web中运行一个Form 402
19.4 在Web上创建Oracle Reports 403
19.4.1 为Web Reports设置Web Server 403
19.4.2 Reports的运行 405
19.5 小结 406
19.6 我们还将学到 407
第七部分 完整的模板系统 409
第20章 开发一个雇员信息系统的模板系统 409
20.1 第一阶段——数据库规范化和数据库设计 409
20.2 第二阶段——创建数据库的对象 411
20.3 第三阶段——将数据加载到数据库表中 415
20.4 第四阶段——设计及开发用户界面 421
20.4.1 Department Update Form (Deptupd.fmb) 422
20.4.2 Employee Update form (Empupd.fmb) 422
20.4.3 Employee Directory Form (Empdir.fmb) 426
20.4.4 Security Update Form (Empsec.fmb) 427
20.4.5 Employee系统启动Form(Eemptup.fmb)和系统菜单(Esysmenu.mmb) 428
20.5 第五阶段——开发并添加报表到该系统中 429
20.6 小结 431
第八部分 附录 433
附录A 内置子程序 433
附录B 触发器 443
附录C 系统变量 449
附录D 练习数据库安装指导 451
附录E 习题答案 455