第1章 案例场景 1
1.1 案例场景A——网上书店 1
1.1.1 业务背景 1
1.1.2 业务需求 1
1.1.3 解决方案 1
1.1.4 功能描述 2
1.1.5 任务说明 4
1.2 案例场景B——博客系统 4
1.2.1 业务背景 4
1.2.2 业务需求 5
1.2.3 解决方案 5
1.2.4 功能描述 5
1.2.5 任务说明 5
第2章 初识Oracle 10g 7
2.1 工作场景 7
2.2 安装Oracle 10g服务器(高级安装) 9
2.3 Oracle 10g常用对象 28
2.4 Oracle 10g常用数据类型 32
2.5 为什么选择学习Oracle 10g 32
2.6 数据库概述 33
2.6.1 数据库的基础知识 33
2.6.2 数据处理技术 34
2.6.3 数据库系统的特点 34
2.6.4 关系数据库 35
2.6.5 网络数据库 35
2.7 小结 35
2.8 思考与练习 35
2.9 课堂实践 35
2.10 课后实践 36
第3章 使用表 37
3.1 案例场景 37
3.2 创建表 41
3.3 更改表 44
3.3.1 增加列 44
3.3.2 更改列 45
3.3.3 删除列 47
3.3.4 给列注释 48
3.4 给表注释 50
3.5 重新命名表 51
3.6 约束 52
3.6.1 非空约束 52
3.6.2 主键约束 53
3.6.3 外键约束 55
3.6.4 唯一约束 57
3.6.5 默认约束 59
3.6.6 检查约束 61
3.6.7 禁止约束 63
3.6.8 激活约束 65
3.6.9 删除约束 66
3.7 删除表 68
3.8 在OEM中使用表 69
3.9 小结 74
3.10 思考与练习 74
3.11 课堂实践 74
3.12 课后实践 77
第4章 操纵数据 81
4.1 工作场景 82
4.2 操作数据 82
4.2.1 插入数据 82
4.2.2 更改数据 84
4.2.3 合并操作 85
4.2.4 闪回查询 88
4.2.5 事务控制 93
4.3 使用SQL*Plus工具 95
4.3.1 处理命令 95
4.3.2 自定义SQL*Plus环境 101
4.3.3 格式化查询结果 104
4.3.4 用脚本文件生成报表 105
4.3.5 使用iSQL*Plus 106
4.4 查询数据 108
4.4.1 检索单表数据 108
4.4.2 过滤数据 109
4.4.3 排序数据 110
4.4.4 检索多表数据 111
4.4.5 使用函数 112
4.4.6 日期和时间 113
4.4.7 子查询 115
4.4.8 分组查询 117
4.4.9 连接查询 118
4.4.10 合并查询 120
4.4.11 层次查询 121
4.4.12 情景查询 123
4.5 小结 124
4.6 思考和练习 124
4.7 课堂实践 125
4.8 课后实践 125
第5章 使用其他方案对象 127
5.1 工作场景 127
5.2 序列 128
5.2.1 创建序列 128
5.2.2 使用序列 129
5.2.3 更改序列 130
5.2.4 删除序列 131
5.2.5 在OEM中使用序列 131
5.3 索引 132
5.3.1 创建索引 132
5.3.2 更改索引 134
5.3.3 删除索引 135
5.3.4 在OEM中使用索引 135
5.4 视图 136
5.4.1 创建视图 136
5.4.2 更改视图 138
5.4.3 删除视图 138
5.4.4 在OEM中使用视图 139
5.5 同义词 140
5.5.1 创建同义词 140
5.5.2 更改同义词 141
5.5.3 删除同义词 141
5.5.4 在OEM中使用同义词 142
5.6 小结 143
5.7 思考和练习 143
5.8 课堂实践 144
5.9 课后实践 144
第6章 PL/SQL开发 145
6.1 工作场景 146
6.2 初识PL/SQL 146
6.2.1 第一个PL/SQL程序 146
6.2.2 PL/SQL程序结构 148
6.2.3 为什么选择学习PL/SQL 148
6.3 PL/SQL基本语法 149
6.3.1 数据类型 149
6.3.2 变量和常量 151
6.3.3 表达式和运算符 153
6.3.4 流程控制语句 154
6.4 使用游标 157
6.4.1 显式游标 158
6.4.2 隐式游标 160
6.4.3 游标FOR循环 161
6.4.4 使用游标更新或删除数据 162
6.5 处理异常 164
6.5.1 处理系统预定义异常 165
6.5.2 处理非预定义异常 167
6.5.3 处理自定义异常 168
6.6 使用过程 170
6.6.1 创建过程 170
6.6.2 执行过程 172
6.6.3 在过程中使用参数 173
6.7 使用函数 174
6.7.1 创建函数 174
6.7.2 执行函数 177
6.8 使用程序包 178
6.8.1 创建程序包 178
6.8.2 调用程序包 181
6.9 使用触发器 181
6.9.1 DML触发器 182
6.9.2 INSTEAD OF触发器 184
6.10 PL/SQL的测试与调试 186
6.11 小结 186
6.12 思考和练习 186
6.13 课堂实践 187
6.14 课后实践 187
第7章 JDBC 189
7.1 工作场景 189
7.2 搭建JDBC运行和开发环境 190
7.3 调用Oracle存储过程 196
7.4 使用RowSet 201
7.5 批量更新 202
7.6 存储和读取图像和文档 205
7.6.1 BLOB二进制大对象 205
7.6.2 CLOB字符大对象 213
7.7 事务处理 216
7.7.1 JDBC的事务处理 216
7.7.2 分布式事务处理 219
7.8 JDBC和SQL数据类型映射 221
7.9 小结 223
7.10 思考和练习 223
7.11 课堂实践 223
7.12 课后实践 224
第8章 iBATIS 225
8.1 工作场景 226
8.2 搭建iBATIS运行和开发环境 226
8.3 初识iBATIS 230
8.3.1 第一个iBATIS程序 230
8.3.2 iBATIS程序结构 234
8.3.3 为什么选择学习iBATIS 234
8.4 配置iBATIS 235
8.5 SQL映射 237
8.6 操作数据 242
8.7 数据关联 248
8.7.1 一对一 248
8.7.2 一对多 253
8.8 动态映射 258
8.9 延迟加载 259
8.10 数据缓存 260
8.10.1 缓存类型 260
8.10.2 OSCache 261
8.11 iBATIS DAO 263
8.12 事务管理 267
8.12.1 基于JDBC的事务管理 267
8.12.2 基于JTA的事务管理 269
8.13 小结 270
8.14 思考和练习 270
8.15 课堂实践 271
8.16 课后实践 271
第9章 Hibernate 273
9.1 工作场景 273
9.2 搭建Hibernate运行和开发环境 274
9.3 初识Hibernate 276
9.3.1 第一个Hibernate程序 276
9.3.2 Hibernate程序结构 285
9.3.3 为什么选择学习Hibernate 287
9.4 配置Hibernate 287
9.5 O/R映射 290
9.5.1 基本数据类型 290
9.5.2 类和表映射 291
9.5.3 主键映射 293
9.5.4 属性和字段映射 294
9.6 数据关联 295
9.6.1 一对一 295
9.6.2 一对多 302
9.6.3 多对多 311
9.7 操作实体对象 315
9.7.1 Session的保存、更新和删除 315
9.7.2 通过主键id获取对象 317
9.7.3 Query接口 318
9.7.4 清除缓存对象 319
9.8 小结 319
9.9 思考和练习 320
9.10 课堂实践 320
9.11 课后实践 320
第10章 Oracle体系结构 321
10.1 工作场景 321
10.2 体系结构概述 322
10.2.1 网络结构 322
10.2.2 数据库处理过程 322
10.2.3 总体结构 324
10.3 存储结构 325
10.3.1 逻辑存储结构 325
10.3.2 物理存储结构 326
10.4 软件结构 328
10.4.1 内存结构 328
10.4.2 进程结构 330
10.5 数据字典 331
10.5.1 数据字典的构成 331
10.5.2 常用数据字典 332
10.5.3 动态性能表和动态性能视图 333
10.6 小结 334
10.7 思考和练习 334
10.8 课堂实践 335
10.9 课后实践 335
第11章 管理数据库 337
11.1 工作场景 337
11.2 建立数据库 338
11.3 启动和关闭数据库 345
11.3.1 使用Windows服务启动和关闭监听程序 345
11.3.2 使用Windows服务启动和关闭数据库 348
11.3.3 在OEM中启动和关闭数据库 351
11.4 设置数据库 354
11.5 管理Oracle网络 356
11.5.1 Oracle网络概述 356
11.5.2 创建监听程序 357
11.5.3 配置监听程序 361
11.5.4 配置文件listener.ora 363
11.5.5 创建网络服务名 364
11.5.6 配置网络服务名 368
11.5.7 配置文件tnsnames.ora 369
11.6 删除数据库 369
11.7 小结 371
11.8 思考和练习 371
11.9 课堂实践 372
11.10 课后实践 372
第12章 用户与权限管理 373
12.1 工作场景 373
12.2 用户管理 374
12.2.1 创建用户 374
12.2.2 修改用户口令 375
12.2.3 修改用户的默认表空间 376
12.2.4 锁定用户和解除用户锁定 377
12.2.5 删除用户 378
12.3 系统权限管理 379
12.3.1 为用户授予系统权限 379
12.3.2 收回授予的系统权限 380
12.4 对象权限管理 381
12.4.1 为用户授予对象权限 382
12.4.2 收回授予的对象权限 384
12.5 角色管理 385
12.5.1 创建角色 386
12.5.2 为角色和用户授予权限 387
12.5.3 默认的角色 389
12.5.4 收回角色的权限 390
12.5.5 删除角色 391
12.6 小结 392
12.7 思考和练习 392
12.8 课堂实践 392
12.9 课后实践 393
第13章 存储管理 395
13.1 工作场景 395
13.2 管理表空间 396
13.2.1 创建表空间 396
13.2.2 修改表空间 398
13.2.3 设置表空间状态 399
13.2.4 添加数据文件到表空间 400
13.2.5 删除表空间 401
13.2.6 在表空间中创建表 402
13.3 管理数据文件 404
13.3.1 创建数据文件 404
13.3.2 更改数据文件 405
13.4 管理日志文件 406
13.4.1 创建日志文件组 407
13.4.2 添加成员到日志文件组 408
13.4.3 更改日志文件组成员 409
13.4.4 清除日志文件组 410
13.5 管理控制文件 411
13.5.1 创建控制文件 412
13.5.2 备份控制文件 413
13.5.3 备份控制文件到TRACE文件中 414
13.6 小结 415
13.7 思考和练习 415
13.8 课堂实践 415
13.9 课后实践 415
第14章 备份和恢复 417
14.1 工作场景 417
14.2 逻辑备份 417
14.2.1 导出到文件 418
14.2.2 从文件中导入 419
14.3 物理备份 421
14.3.1 脱机备份及恢复 421
14.3.2 联机备份及恢复 422
14.4 小结 425
14.5 思考和练习 425
14.6 课堂实践 425
14.7 课后实践 425