第一篇 Oracle管理配置
第1章 Oracle安装配置
1.1 Oracle简介/1
1.1.1 数据库术语/1
1.1.2 主流数据库简介/2
1.1.3 Oracle数据库的特点/2
1.2 安装Oracle数据库/3
1.2.1 Oracle数据库的版本变迁及安装环境/3
1.2.2 安装过程/4
1.2.3 安装中需要注意的问题/9
1.3 本章小结/9
1.4 习题/9
第2章 Oracle常用工具
2.1 Net Configuration Assistant(网络配置助手)/10
2.1.1 监听程序配置/10
2.1.2 命名方法配置/13
2.1.3 本地网络服务名配置/15
2.2 Net Manager(网络管理员)/17
2.3 本章实例/19
2.4 本章小结/21
2.5 习题/21
第3章 SQL Plus和PL/SQL
3.1 SQL Plus与PL/SQL简介/22
3.2 使用SQL Plus/23
3.2.1 登录SQL Plus/23
3.2.2 SQL Plus输出结果的格式化/24
3.2.3 SQL Plus小结/29
3.3 PL/SQL/29
3.3.1 PL/SQL常用开发工具/29
3.3.2 开发一个简单的PL/SQL程序/30
3.4 本章实例/31
3.5 本章小结/32
3.6 习题/32
第二篇 Oracle数据库对象
第4章 Oracle数据库
4.1 创建Oracle数据库/33
4.2 Oracle数据库的相关术语/35
4.2.1 数据库/35
4.2.2 数据库实例和SID/36
4.2.3 ORACLE_SID/37
4.3 Oracle数据库的备份与恢复/37
4.3.1 逻辑备份/恢复(导出/导入)/37
4.3.2 物理备份/恢复/38
4.3.3 利用SQL Developer备份数据库/39
4.4 本章实例/41
4.5 本章小结/41
4.6 习题/42
第5章 Oracle数据表对象
5.1 Oracle表空间/43
5.1.1 Oracle表空间简介/43
5.1.2 创建Oracle表空间/44
5.1.3 查看表空间/47
5.1.4 修改数据库默认表空间/47
5.1.5 修改表空间名称/48
5.1.6 删除表空间/49
5.2 创建Oracle数据表/50
5.2.1 利用工具创建数据表/50
5.2.2 利用工具查看数据表/51
5.2.3 利用命令创建数据表/52
5.2.4 利用命令查看表结构/52
5.3 修改Oracle数据表结构/53
5.3.1 利用工具修改数据表结构/53
5.3.2 利用命令修改数据表结构/54
5.4 删除数据表/56
5.4.1 利用工具删除数据表/56
5.4.2 利用SQL语句删除数据表/56
5.5 备份/恢复数据表/57
5.5.1 利用工具备份/恢复数据表/57
5.5.2 利用命令备份/恢复数据表/60
5.6 临时表/61
5.6.1 临时表简介/61
5.6.2 会话级临时表/61
5.6.3 事务级临时表/62
5.6.4 查看临时表在数据库中的信息/63
5.6.5 临时表的应用场景/64
5.7 特殊的表dual/64
5.7.1 分析dual表/65
5.7.2 dual表的应用场景/65
5.7.3 修改dual表对查询结果的影响/66
5.8 本章实例/66
5.9 本章小结/67
5.10 习题/67
第6章 约束
6.1 主键约束/68
6.1.1 主键简介/68
6.1.2 创建主键约束/69
6.1.3 修改表的主键约束/71
6.1.4 主键应用场景/73
6.2 外键约束/74
6.2.1 外键简介/74
6.2.2 创建外键约束/74
6.2.3 级联更新与级联删除/77
6.2.4 修改外键属性/79
6.2.5 外键使用/81
6.3 唯一性约束/82
6.3.1 唯一性约束简介/82
6.3.2 创建唯一性约束/82
6.3.3 修改唯一性约束/83
6.3.4 唯一性约束的使用/84
6.4 检查约束/85
6.4.1 检查约束简介/85
6.4.2 创建检查约束/85
6.4.3 修改检查约束/87
6.4.4 检查约束的使用/88
6.5 默认值约束/88
6.5.1 默认值约束简介/88
6.5.2 创建默认值约束/88
6.5.3 修改默认值约束/90
6.6 本章实例/91
6.7 本章小结/92
6.8 习题/92
第7章 视图
7.1 关系视图/93
7.1.1 建立关系视图/93
7.1.2 修改/删除视图/94
7.1.3 连接视图/96
7.1.4 编译视图/98
7.1.5 使用force选项强制创建视图/100
7.1.6 利用视图更新数据表/101
7.1.7 with check option选项/103
7.1.8 关系视图小结/104
7.2 内嵌视图/104
7.2.1 内嵌视图简介/105
7.2.2 内嵌视图的使用/105
7.2.3 内嵌视图小结/107
7.3 对象视图/107
7.3.1 对象视图简介/107
7.3.2 对象视图的创建与使用/107
7.4 物化视图/109
7.4.1 物化视图简介/109
7.4.2 物化视图的使用/109
7.4.3 物化视图的数据加载/111
7.4.4 物化视图的数据更新/111
7.4.5 查询重写/112
7.5 本章实例/113
7.6 本章小结/113
7.7 习题/113
第8章 函数与存储过程
8.1 函数/114
8.1.1 函数简介/114
8.1.2 创建函数/114
8.1.3 函数中的括号/116
8.1.4 函数的参数/117
8.1.5 函数的确定性/118
8.1.6 典型函数举例/119
8.2 存储过程/120
8.2.1 存储过程简介/120
8.2.2 创建存储过程/120
8.2.3 存储过程的参数——IN参数/122
8.2.4 存储过程的参数——OUT参数/123
8.2.5 存储过程的参数——IN OUT参数/125
8.2.6 存储过程的参数——参数顺序/125
8.2.7 存储过程的参数——参数的默认值/128
8.2.8 存储过程的参数——参数顺序总结/129
8.3 程序包/129
8.3.1 规范/129
8.3.2 主体/131
8.3.3 调用程序包中的函数/存储过程/133
8.3.4 程序包中的变量/134
8.4 本章实例/135
8.5 本章小结/137
8.6 习题/137
第9章 游标
9.1 游标简介/138
9.2 显式游标/138
9.2.1 声明游标/138
9.2.2 使用游标/140
9.3 隐式游标/142
9.3.1 sql隐式游标/143
9.3.2 cursor for游标/144
9.3.3 隐式游标和显式游标/145
9.4 游标属性/145
9.5 动态游标/147
9.5.1 强类型动态游标/147
9.5.2 弱类型动态游标/149
9.5.3 比较两种动态游标/152
9.6 本章实例/152
9.7 本章小结/153
9.8 习题/153
第10章 触发器
10.1 触发器简介/154
10.2 创建和使用触发器/154
10.2.1 创建触发器/155
10.2.2 触发器的作用级别/156
10.2.3 在多个事件上定义触发器/157
10.2.4 为同一事件定义多个触发器/158
10.2.5 触发器限制/159
10.3 语句触发器/160
10.3.1 创建语句触发器/160
10.3.2 触发器谓词/162
10.3.3 触发时机/164
10.3.4 触发器级联/164
10.4 行触发器/165
10.4.1 行触发器与引用/166
10.4.2 触发时机与引用/168
10.4.3 触发时机与瞬态/169
10.5 instead of触发器/171
10.5.1 创建和使用instead of触发器/171
10.5.2 instead of触发器与引用/174
10.6 系统事件与用户事件触发器/175
10.6.1 系统事件触发器/175
10.6.2 用户事件触发器/176
10.7 启用和禁用触发器/178
10.7.1 启用和禁用触发器的场景/178
10.7.2 禁用触发器/178
10.7.3 启用触发器/179
10.7.4 触发器信息/180
10.8 本章实例/180
10.9 本章小结/182
10.11 习题/182
第11章 序列
11.1 创建和使用序列/183
11.1.1 创建序列/183
11.1.2 使用序列/184
11.1.3 序列初始值start with/185
11.2 修改序列属性/186
11.2.1 修改minvalue和maxvalue/186
11.2.2 修改increment by/187
11.2.3 修改cycle/188
11.2.4 修改cache/189
11.3 本章实例/190
11.4 本章小结/191
11.5 习题/191
第12章 用户角色与权限控制
12.1 用户/192
12.1.1 Oracle中的用户/192
12.1.2 创建新用户/193
12.1.3 用户与模式(Schema)/194
12.1.4 系统用户sys和system/194
12.2 权限/195
12.2.1 系统权限/195
12.2.2 对象权限/197
12.3 角色/201
12.3.1 创建和使用角色/201
12.3.2 继承角色/203
12.3.3 禁用和启用角色/204
12.4 本章实例/205
12.5 本章小结/206
12.6 习题/206
第三篇 Oracle中的SQL
第13章 Oracle数据类型
13.1 Oracle中的数据类型/207
13.1.1 字符型/207
13.1.2 数值型/208
13.1.3 日期时间型/208
13.1.4 lob类型/209
13.2 Oracle中的特殊数据/209
13.2.1 rowid/209
13.2.2 null与空字符串/210
13.2.3 单引号与双引号/211
13.3 本章实例/213
13.4 本章小结/215
13.5 习题/215
第14章 Oracle中的函数与表达式
14.1 Oracle中的字符串函数/216
14.1.1 lpad()函数/216
14.1.2 rpad()函数/217
14.1.3 lower()函数——返回小写字符串/217
14.1.4 upper()函数——返回大写字符串/217
14.1.5 initcap ()函数——单词首字母大写/218
14.1.6 length()函数——返回字符串长度/218
14.1.7 substr()函数——截取字符串/219
14.1.8 instr()函数——获得字符串出现的位置/219
14.1.9 ltrim()函数——删除字符串首部空格/220
14.1.10 rtrim()函数——删除字符串尾部空格/220
14.1.11 trim()函数——删除字符串首尾空格/220
14.1.12 to_char()函数——将其他类型转换为字符类型/221
14.1.13 chr()函数——将ASCII码转换为字符串/223
14.1.14 translate()函数——替换字符/223
14.2 Oracle中的数学函数/224
14.2.1 abs ()函数——返回数字的绝对值/224
14.2.2 round ()函数——返回数字的“四舍五入”值/224
14.2.3 ceil()函数——向上取整/225
14.2.4 floor()函数——向下取整/225
14.2.5 mod ()函数——取模操作/226
14.2.6 sign()函数——返回数字的正负性/226
14.2.7 sqrt()函数——返回数字的平方根/226
14.2.8 power()函数——乘方运算/227
14.2.9 trunc()函数——截取数字/227
14.2.10 vsize()函数——返回数据的存储空间/227
14.2.11 to_number()函数——将字符串转换为数值类型/228
14.3 Oracle中的日期函数/228
14.3.1 to_date()函数——将字符串转换为日期型/228
14.3.2 add_months()函数——为日期加上特定月份/229
14.3.3 last_day()函数——返回特定日期所在月的最后一天/230
14.3.4 months_between ()函数——返回两个日期所差的月数/230
14.3.5 current_date()函数——返回当前会话时区的当前日期/230
14.3.6 current_timestamp()函数——返回当前会话时区的 当前时间戳/231
14.3.7 extract()函数——返回日期的某个域/231
14.4 Oracle中的聚合函数/232
14.4.1 max()函数——求最大值/233
14.4.2 min()函数——求最小值/233
14.4.3 avg()函数——求平均值/234
14.4.4 sum()函数——求和/234
14.4.5 count()函数——获得记录数/235
14.5 Oracle中的其他函数/236
14.5.1 decode()函数——多值判断/236
14.5.2 nvl()函数——处理空值/237
14.5.3 cast()函数——强制转换数据类型/238
14.6 Oracle中的运算表达式/239
14.6.1 数学运算/240
14.6.2 逻辑运算/241
14.6.3 位运算/242
14.7 Oracle中的特殊判式/242
14.7.1 between——范围测试/243
14.7.2 in——集合成员测试/244
14.7.3 like——模式匹配/244
14.7.4 is null——空值判断/244
14.7.5 exists——存在性判断/245
14.7.6 all、some和any——数量判断/245
14.8 Oracle高级函数——分析函数与窗口函数/246
14.8.1 排名/246
14.8.2 分区窗口/248
14.8.3 窗口子句/250
14.8.4 主要的分析函数/253
14.9 本章实例/256
14.10 本章小结/257
14.11 习题/258
第15章 Oracle中的控制语句
15.1 Oracle中的条件语句/259
15.1.1 利用if else进行条件判断/259
15.1.2 利用case when进行分支判断/260
15.2 Oracle中的循环语句/262
15.2.1 无条件循环/262
15.2.2 while循环/263
15.2.3 for循环/264
15.3 本章实例/265
15.4 本章小结/265
15.5 习题/266
第16章 SQL查询
16.1 基本查询/267
16.1.1 select语句查询执行步骤/267
16.1.2 where子句/269
16.1.3 利用distinct获得唯一性记录/270
16.1.4 order by子句/270
16.1.5 group by子句/271
16.1.6 having子句/274
16.2 子查询/275
16.2.1 理解子查询/275
16.2.2 子查询使用实例/275
16.3 联合语句/277
16.3.1 union查询/277
16.3.2 union all查询/278
16.3.3 intersect查询/280
16.3.4 minus查询/280
16.4 连接/281
16.4.1 自然连接/281
16.4.2 内连接/282
16.4.3 外连接——左连接/283
16.4.4 外连接——右连接/285
16.4.5 外连接——完全连接/287
16.5 层次化查询/289
16.5.1 利用connect by进行层次化查询/290
16.5.2 connect by的使用场景/291
16.5.3 sys_connect_by_path()函数的使用/292
16.6 本章实例/293
16.7 本章小结/295
16.8 习题/295
第17章 SQL更新数据
17.1 插入数据/296
17.1.1 insert语句向表中插入数据/296
17.1.2 利用子查询批量插入数据/297
17.1.3 insert语句与默认值/298
17.1.4 insert语句与唯一性约束/298
17.1.5 insert语句与外键约束/298
17.2 修改数据/299
17.2.1 利用update修改单列的值/299
17.2.2 利用update修改多列的值/300
17.2.3 利用where子句限制修改范围/300
17.3 删除数据/301
17.3.1 利用delete命令删除数据/301
17.3.2 利用truncate命令删除数据/302
17.4 数据提交与回滚/302
17.4.1 回滚动作/302
17.4.2 提交动作/303
17.4.3 SQL Developer中的回滚与提交/304
17.5 本章实例/305
17.6 本章小结/307
17.7 习题/307
第四篇 Oracle编程高级应用
第18章 数据库速度优化与数据完整性
18.1 利用索引加快数据引用/308
18.1.1 索引的原理/308
18.1.2 利用索引提高数据库性能/309
18.1.3 索引对DML的影响/311
18.1.4 索引的使用时机/312
18.2 利用约束保持数据完整性/312
18.2.1 数据库完整性的重要性/313
18.2.2 保持数据库完整性的重要方面/313
18.2.3 利用约束保持数据完整性/313
18.3 本章实例/314
18.3.1 使用比较运算符不当/314
18.3.2 函数的使用/315
18.3.3 联合索引/315
18.4 本章小结/316
18.6 习题/316
第19章 数据一致性与事务管理
19.1 什么是数据一致性和事务/317
19.1.1 数据一致性/317
19.1.2 事务/317
19.2 Oracle中的事务处理/318
19.2.1 commit命令/318
19.2.2 rollback命令/319
19.2.3 savepoint和rollback to savepoint命令/319
19.2.4 事务的属性和隔离级别/321
19.3 事务处理原则/325
19.3.1 原子性/325
19.3.2 一致性/326
19.3.3 隔离性/328
19.3.4 持久性/329
19.4 本章实例/329
19.5 本章小结/331
19.6 习题/331
第20章 并发控制
20.1 并发与锁定/332
20.2 数据锁定/335
20.2.1 悲观锁定/335
20.2.2 乐观锁定/336
20.2.3 悲观锁定与乐观锁定的比较/338
20.2.4 锁定转换/338
20.3 并发控制的其他方法/339
20.4 本章实例/339
20.5 本章小结/343
20.6 习题/343
第21章 Oracle中的正则表达式
21.1 正则表达式简介/344
22.1.1 正则表达式与通配符/344
22.1.2 正则表达式与编程语言/344
21.2 正则表达式基础知识/345
21.2.1 元字符和普通字符/345
21.2.2 量词/345
21.2.3 字符转义与字符类/345
21.2.4 字符组的使用/346
21.2.5 正则表达式分支/346
21.2.6 Oracle中正则表达式的特殊性/346
21.3 正则表达式在Oracle中的应用/347
21.3.1 regexp_like()的使用/347
21.3.2 regexp_instr()的使用/347
21.3.3 regexp_substr()的使用/348
21.3.4 regexp_ replace ()的使用/348
21.4 本章实例/349
21.5 本章小结/349
21.6 习题/350
第五篇 Oracle与编程语言综合使用实例
第22章 Oracle在Java开发中的应用
22.1 通过JDBC使用Oracle/351
22.1.1 JDBC简介/351
22.1.2 准备工作/351
22.1.3 JDBC连接Oracle/352
22.1.4 利用JDBC查询数据/354
22.1.5 利用JDBC更新数据/355
22.1.6 总结JDBC操作数据库/357
22.2 通过Hibernate操作Oracle数据库/357
22.2.1 准备工作/357
22.2.2 配置Hibernate/358
22.2.3 利用Hibernate查询数据/361
22.2.4 利用Hibernate更新数据/362
22.2.5 利用Hibernate插入数据/364
22.3 本章小结/365
2.4 习题/365
第23章 Oracle在C#开发中的应用
23.1 在C#中连接Oracle数据库/366
23.2 在C#中操作Oracle数据库/367
23.3 在C#中使用Oracle数据库事务/369
23.4 本章小结/371
23.5 习题/372
第六篇 应试指南
第24章 常见面试习题
24.1 简历准备/373
24.2 简历投递及面试/374
24.3 常见数据库理论问题/375
24.4 常见PL/SQL相关面试问题/375
24.5 常见Oracle维护相关面试问题/377
24.6 常见Oracle应用开发相关面试问题/379