标题：21天学通Oracle（第2版）
21天学通Oracle（第2版）
21天学编程系列  21天学通Oracle（第2版）
张朝明编著
ISBN 978-7-121-14672-5
2011年10月出版
定价：59.00元（含DVD光盘1张）
16开
404页
以任务驱动方式讲解，用实例引导读者学习
只需21天，便可轻松掌握Oracle数据库
内容简介
Oracle是目前全球应用最广泛、功能最强大的关系型数据库。本书结合大量实例，详细地讲述了Oracle数据库各方面的知识。全书内容包括Oracle安装配置、Oracle常用开发工具、SQL Plus、数据表、视图、约束、函数与存储过程、触发器、序列、索引、用户与角色、内置函数、控制语句、SQL查询及更新语句、并发与锁定、正则表达式、与编程语言结合使用。为了便于读者学习与把握，在每章都使用了单独的小节来展示实例，并给出习题和答案。
本书光盘附带书中所涉及的源文件和数据库脚本。同时，光盘还附带配套全程视频，以便于读者更好地掌握本书内容。
本书适合Oracle数据库开发人员、基于Oracle数据库的软件程序员、Oracle数据库管理员、大专院校学生，以及对Oracle开发有兴趣的人员。本书浅显易懂、实例丰富，尤其适合广大程序员自学。
前 言
第2版图书出版说明为了让那些Oracle初学人员少走弯路，快速而轻松地了解和熟悉Oracle数据库，我们于2009年1月推出了《21天学通Oracle》。该书是“21天学编程系列”中的一本。
“21天学编程系列”自2009年1月上市以来一直受到了广大读者的青睐。该系列中的大部分图书从一上市就登上了编程类图书销售排行榜的前列，很多大中专院校也将该系列中的一些图书作为教材使用，目前这些图书已经多次印刷。可以说，“21天学编程”系列是自2009年以来国内原创计算机编程图书最有影响力的品牌之一。
为了使该系列图书能紧跟技术和教学的发展，更加适合读者学习和学校教学，我们结合最新技术和读者的建议，对该系列图书进行了改版（即第2版）。本书便是该系列中的Oracle分册。
第2版图书所做的改进
第2版图书在第1版图书的基础上主要做了以下改进：
更正了第1版图书中出现的一些疏漏和错误。增加了常见面试题，使读者了解面试时经常会遇到的问题。将习题内容重新设计和编排，更加偏重于实际操作，并配有详细操作步骤解答。对图书内容和结构进行了必要调整，更加合理和科学。补充了一些新的内容，使内容更加完善。
本书有何特色
1．细致体贴的讲解
为了让读者更快地上手，本书特别设计了适合初学者的学习方式，用准确的语言总结概念#用直观的图示演示过程#用详细的注释解释代码#用形象的比方帮助记忆。效果如下：
知识点介绍  准确、清晰是其显著特点，一般放在每一节开始位置，让零基础的读者了解相关概念，顺利入门。
范例  书中出现的完整实例，以章节顺序编号，便于检索和循序渐进地学习、实践，放在每节知识点介绍之后。
范例代码  与范例编号对应，层次清楚、语句简洁、注释丰富，体现了代码优美的原则，有利于读者养成良好的代码编写习惯。对于大段程序，均在每行代码前设定编号，便于学习。
运行结果  对范例给出运行结果和对应图示，帮助读者更直观地理解范例代码。
代码解析  将范例代码中的关键代码行逐一解释，有助于读者掌握相关概念和知识。
综合练习  为了便于读者巩固所学内容，本书每章中均提供了综合练习，并给出了操作提示和结果，配合读者自己动手实践。
习题  每章最后提供专门的测试习题，供读者检验所学知识是否牢固掌握，题目的提示或答案放在光盘中。
常见面试题  每章均配有常见面试题及应对提示。
贴心的提示  为了便于读者阅读，全书还穿插着一些技巧、提示等小贴士，体例约定如下：
提示：通常是一些贴心的提醒，让读者加深印象或提供建议，或者解决问题的方法。注意：提出学习过程中需要特别注意的一些知识点和内容，或者相关信息。警告：对操作不当或理解偏差将会造成的灾难性后果做警示，以加深读者印象。
经作者多年的培训和授课证明，以上讲解方式是最适合初学者学习的方式，读者按照这种方式，会非常轻松、顺利地掌握本书知识。
2．实用超值的DVD光盘
为了帮助读者比较直观地学习，本书附赠DVD光盘，内容包括多媒体视频、电子教案（PPT）、各章习题答案和实例源代码等。
多媒体视频
配有长达14小时手把手教学视频，讲解关键知识点界面操作和书中的一些综合练习题。作者亲自配音、演示，手把手教会读者使用。
电子教案（PPT）
本书可以作为高校相关课程的教材或课外辅导书，所以笔者特别为本书制作了电子教案（PPT），以方便老师教学使用。
提供完善的技术支持
本书提供了论坛，读者可以在上面提问交流。另外，论坛上还有一些小的教程、视频动画和各种技术文章，可帮助读者提高开发水平。
推荐的学习计划
本书从初学者角度出发，结合对学习阶段的认识，归纳了最适合初学者的学习模式，并为读者总结了合理的学习时间分配方式，列表如下：
推荐时间安排自学目标（框内打钩表示已掌握）难度指数第2周第13天了解PL/SQL控制语句的基本种类掌握条件控制语句掌握各种循环语句□□□êê第14天掌握Oracle的基本查询语法掌握子查询的使用掌握联合查询的使用掌握连接语句的使用□□□□êêê第3周第15天理解Oracle的层次化查询的意义掌握层次化查询的使用掌握层次化查询的相关函数的使用□□□êêêê第16天掌握插入数据的SQL语句的使用掌握更新数据的SQL语句的使用掌握删除数据的SQL语句的使用掌握提交和回滚的基本动作□□□□êê第17天了解索引提高数据库性能的原理掌握索引的使用了解数据完整性的重要意义掌握利用各种约束保持数据完整性□□□□êêêê第18天了解数据一致性的重要意义掌握利用事务保持数据一致性掌握Oracle中事务的属性和隔离级别掌握事务的处理原则□□□□êêêê第19天了解并发与锁定的意义了解Oracle中锁定转换的意义掌握悲观锁与乐观锁的使用了解处理数据库并发的其他方法□□□□êêêê第20天了解正则表达式的意义掌握正则表达式的一般语法掌握Oracle中正则表达式的特殊用法掌握Oracle中正则表达式的相关函数□□□□êêê第21天了解Java中使用Oracle数据库的一般模式掌握如何利用JDBC和Hibernate操作Oracle数据库了解C#中使用Oracle数据库的一般模式掌握如何在C#中操作Oracle数据库□□□□êêê本书适合哪些读者阅读
本书非常适合以下人员阅读：
Oracle数据库开发人员；Oracle数据库管理员；基于Oracle数据库的软件程序员；大专院校学生；其他编程爱好者。
目 录
第一篇  Oracle管理配置
第1章  Oracle安装配置（  教学视频：10分钟）    23
1.1  Oracle简介    23
1.1.1  数据库术语    23
1.1.2  主流数据库简介    24
1.1.3  Oracle数据库的特点    24
1.2  安装Oracle数据库    25
1.2.1  Oracle数据库的版本变迁及安装环境    25
1.2.2  安装过程    26
1.2.3  安装中需要注意的问题    27
1.3  本章小结    28
1.4  常见面试题    28
1.5  习题    28
第2章  Oracle常用工具（  教学视频：7分钟）    29
2.1  Net Configuration Assistant（网络配置助手）    29
2.1.1  监听程序配置    29
2.1.2  命名方法配置    31
2.1.3  本地Net服务名配置    32
2.2  Net Manager（网络管理员）    34
2.3  本章实例    36
2.4  本章小结    38
2.5  常见面试题    38
2.6  习题    38
第3章  SQL Plus和PL/SQL（  教学视频：11分钟）    39
3.1  SQL Plus与PL/SQL简介    39
3.2  使用SQL Plus 40
3.2.1 登录SQL Plus 40
3.2.2  SQL Plus输出结果的格式化    41
3.2.3  SQL Plus小结    46
3.3  PL/SQL  46
3.3.1  PL/SQL常用开发工具    46
3.3.2  开发一个简单的PL/SQL程序    48
3.4  本章实例    49
3.5  本章小结    50
3.6  常见面试题    50
3.7  习题    50
第二篇  Oracle数据库对象
第4章  Oracle数据库（  教学视频：15分钟）    51
4.1  创建Oracle数据库    51
4.2  Oracle数据库的相关术语    52
4.2.1  数据库    53
4.2.2  数据库实例和SID   53
4.2.3  ORACLE_SID   54
4.3  Oracle数据库的备份与恢复    55
4.3.1  逻辑备份/恢复（导出/导入）    55
4.3.2  物理备份/恢复    56
4.3.3 利用PL/SQL Developer备份数据库    60
4.4  本章实例    61
4.5  本章小结    61
4.6  常见面试题    62
4.7  习题    62
第5章  Oracle数据表对象（  教学视频：42分钟）    63
5.1  Oracle表空间    63
5.1.1  Oracle表空间简介    63
5.1.2  创建Oracle表空间    64
5.1.3  查看表空间    66
5.1.4  修改数据库默认表空间    67
5.1.5  修改表空间名称    68
5.1.6  删除表空间    69
5.2  创建Oracle数据表    70
5.2.1  利用工具创建数据表    70
5.2.2  利用工具查看数据表    71
5.2.3  利用命令创建数据表    72
5.2.4  利用命令查看表结构    72
5.3  修改Oracle数据表结构    73
5.3.1  利用工具修改数据表结构    73
5.3.2  利用命令修改数据表结构    74
5.4  删除数据表    75
5.4.1  利用工具删除数据表    76
5.4.2  利用SQL语句删除数据表    76
5.5  备份/恢复数据表    76
5.5.1  利用工具备份/恢复数据表    77
5.5.2  利用命令备份/恢复数据表    82
5.6  临时表    83
5.6.1  临时表简介    83
5.6.2  会话级临时表    84
5.6.3  事务级临时表    85
5.6.4  查看临时表在数据库中的信息    86
5.6.5  临时表的应用场景    86
5.7  特殊的表dual 87
5.7.1  分析dual表    87
5.7.2  dual表的应用场景    87
5.7.3  修改dual表对查询结果的影响    88
5.8  本章实例    89
5.9  本章小结    90
5.10  常见面试题    90
5.11  习题    90
第6章  约束（  教学视频：43分钟）    91
6.1  主键约束    91
6.1.1  主键简介    91
6.1.2  创建主键约束    92
6.1.3  修改表的主键约束    94
6.1.4  主键应用场景    96
6.2  外键约束    97
6.2.1  外键简介    97
6.2.2  创建外键约束    97
6.2.3  级联更新与级联删除    100
6.2.4  修改外键属性    102
6.2.5  外键使用    104
6.3  唯一性约束    105
6.3.1  唯一性约束简介    105
6.3.2  创建唯一性约束    105
6.3.3  修改唯一性约束    107
6.3.4  唯一性约束的使用    108
6.4  检查约束    108
6.4.1  检查约束简介    108
6.4.2  创建检查约束    108
6.4.3  修改检查约束    110
6.4.4  检查约束的使用    111
6.5  默认值约束    111
6.5.1  默认值约束简介    111
6.5.2  创建默认值约束    112
6.5.3  修改默认值约束    113
6.6  本章实例    115
6.7  本章小结    115
6.8  常见面试题    116
6.9  习题    116
第7章  视图（  教学视频：50分钟）    117
7.1  关系视图    117
7.1.1  建立关系视图    117
7.1.2  修改/删除视图    118
7.1.3  连接视图    120
7.1.4  编译视图    122
7.1.5  使用force选项强制创建视图    124
7.1.6  利用视图更新数据表    125
7.1.7  with check option选项    126
7.1.8  关系视图小结    128
7.2  内嵌视图    128
7.2.1  内嵌视图简介    128
7.2.2  内嵌视图的使用    128
7.2.3  内嵌视图小结    130
7.3  对象视图    131
7.3.1  对象视图简介    131
7.3.2  对象视图的创建与使用    131
7.4  物化视图    133
7.4.1  物化视图简介    133
7.4.2  物化视图的使用    133
7.4.3  物化视图的数据加载    135
7.4.4  物化视图的数据更新    135
7.4.5  查询重写    136
7.5  本章实例    136
7.6  本章小结    137
7.7  常见面试题    137
7.8  习题    137
第8章  函数与存储过程（  教学视频：48分钟）    138
8.1  函数    138
8.1.1  函数简介    138
8.1.2  创建函数    138
8.1.3  函数中的括号    140
8.1.4  函数的参数    141
8.1.5  函数的确定性    142
8.1.6  典型函数举例    143
8.2  存储过程    144
8.2.1  存储过程简介    144
8.2.2  创建存储过程    144
8.2.3  存储过程的参数——IN参数    146
8.2.4  存储过程的参数——OUT参数    147
8.2.5  存储过程的参数——IN OUT参数    149
8.2.6  存储过程的参数——参数顺序    149
8.2.7  存储过程的参数——参数的默认值    152
8.2.8  存储过程的参数——参数顺序总结    153
8.3  程序包    153
8.3.1  规范    153
8.3.2  主体    154
8.3.3  调用程序包中的函数/存储过程    157
8.3.4  程序包中的变量    158
8.4  本章实例    159
8.5  本章小结    161
8.6  常见面试题    161
8.7  习题    161
第9章  游标（  教学视频：36分钟）    162
9.1  游标简介    162
9.2  显式游标    162
9.2.1  声明游标    162
9.2.2  使用游标    164
9.3  隐式游标    166
9.3.1  sql隐式游标    166
9.3.2  cursor for游标    168
9.3.3  隐式游标和显式游标    169
9.4  游标属性    169
9.5  动态游标    171
9.5.1  强类型动态游标    171
9.5.2  弱类型动态游标    173
9.5.3  比较两种动态游标    176
9.6  本章实例    176
9.7  本章小结    176
9.8  常见面试题    177
9.9  习题    177
第10章  触发器（  教学视频：58分钟）    178
10.1  触发器简介    178
10.2  创建和使用触发器    178
10.2.1  创建触发器    179
10.2.2  触发器的作用级别    180
10.2.3  在多个事件上定义触发器    181
10.2.4  为同一事件定义多个触发器    182
10.2.5  触发器限制    183
10.3  语句触发器    184
10.3.1  创建语句触发器    184
10.3.2  触发器谓词    186
10.3.3  触发时机    187
10.3.4  触发器级联    188
10.4  行触发器    189
10.4.1  行触发器与引用    189
10.4.2  触发时机与引用    191
10.4.3  触发时机与瞬态    193
10.5  instead of触发器    195
10.5.1  创建和使用instead of触发器    195
10.5.2  instead of触发器与引用    198
10.6  系统事件与用户事件触发器    198
10.6.1  系统事件触发器    198
10.6.2  用户事件触发器    200
10.7  启用和禁用触发器    201
10.7.1  启用和禁用触发器的场景    201
10.7.2  禁用触发器    202
10.7.3  启用触发器    203
10.7.4  触发器信息    203
10.8  本章实例    204
10.9  本章小结    205
10.10  常见面试题    205
10.11  习题    206
第11章  序列（  教学视频：28分钟）    207
11.1  创建和使用序列    207
11.1.1  创建序列    207
11.1.2  使用序列    208
11.1.3  序列初始值start with  209
11.2  修改序列属性    210
11.2.1  修改minvalue和maxvalue  210
11.2.2  修改increment by  211
11.2.3  修改cycle  212
11.2.4  修改cache  213
11.3  本章实例    214
11.4  本章小结    214
11.5  常见面试题    215
11.6  习题    215
第12章  用户角色与权限控制（  教学视频：45分钟）    216
12.1  用户    216
12.1.1  Oracle中的用户    216
12.1.2  创建新用户    217
12.1.3  用户与模式（Schema）    217
12.1.4  系统用户sys和system   218
12.2  权限    219
12.2.1  系统权限    219
12.2.2  对象权限    222
12.3  角色    226
12.3.1  创建和使用角色    226
12.3.2  继承角色    227
12.3.3  禁用和启用角色    229
12.4  本章实例    230
12.5  本章小结    231
12.6  常见面试题    231
12.7  习题    231
第三篇  Oracle中的SQL
第13章  Oracle数据类型（  教学视频：21分钟）    232
13.1  Oracle中的数据类型    232
13.1.1  字符型    232
13.1.2  数值型    233
13.1.3  日期时间型    233
13.1.4  lob类型    234
13.2  Oracle中的特殊数据    234
13.2.1  rowid  234
13.2.2  null与空字符串    235
13.2.3  单引号与双引号    236
13.3  本章实例    238
13.4  本章小结    239
13.5  常见面试题    240
13.6  习题    240
第14章  Oracle中的函数与表达式（  教学视频：111分钟）    241
14.1  Oracle中的字符串函数    241
14.1.1  lpad()函数    241
14.1.2  rpad()函数    242
14.1.3  lower()函数——返回小写字符串    242
14.1.4  upper()函数——返回大写字符串    242
14.1.5  initcap ()函数——单词首字母大写    243
14.1.6  length()函数——返回字符串长度    243
14.1.7  substr()函数——截取字符串    244
14.1.8  instr()函数——获得字符串出现的位置    244
14.1.9  ltrim()函数——删除字符串首部空格    245
14.1.10  rtrim()函数——删除字符串尾部空格    245
14.1.11  trim()函数——删除字符串首尾空格    245
14.1.12  to_char()函数——将其他类型转换为字符类型    246
14.1.13  chr()函数——将ascii码转换为字符串    248
14.1.14  translate()函数——替换字符    248
14.2  Oracle中的数学函数    249
14.2.1  abs ()函数——返回数字的绝对值    249
14.2.2  round ()函数——返回数字的“四舍五入”值    249
14.2.3  ceil()函数——向上取整    250
14.2.4  floor()函数——向下取整    250
14.2.5  mod ()函数——取模操作    251
14.2.6  sign()函数——返回数字的正负性    251
14.2.7  sqrt()函数——返回数字的平方根    251
14.2.8  power()函数——乘方运算    252
14.2.9  trunc()函数——截取数字    252
14.2.10  vsize()函数——返回数据的存储空间    252
14.2.11  to_number()函数——将字符串转换为数值类型    253
14.3  Oracle中的日期函数    253
14.3.1  to_date()函数——将字符串转换为日期型    253
14.3.2  add_months()函数——为日期加上特定月份    254
14.3.3  last_day()函数——返回特定日期所在月的最后一天    254
14.3.4  months_between ()函数——返回两个日期所差的月数    254
14.3.5  current_date()函数——返回当前会话时区的当前日期    255
14.3.6  current_timestamp()函数——返回当前会话时区的 当前时间戳    255
14.3.7  extract()函数——返回日期的某个域    255
14.4  Oracle中的聚合函数    256
14.4.1  max()函数——求最大值    257
14.4.2  min()函数——求最小值    258
14.4.3  avg()函数——求平均值    258
14.4.4  sum()函数——求和    258
14.4.5  count()函数——获得记录数    259
14.5  Oracle中的其他函数    260
14.5.1  decode()函数——多值判断    260
14.5.2  nvl()函数——处理空值    261
14.5.3  cast()函数——强制转换数据类型    262
14.6  Oracle中的运算表达式    264
14.6.1  数学运算    264
14.6.2  逻辑运算    265
14.6.3  位运算    266
14.7  Oracle中的特殊判式    266
14.7.1  between——范围测试    267
14.7.2  in——集合成员测试    268
14.7.3  like——模式匹配    268
14.7.4  is null——空值判断    269
14.7.5  exists——存在性判断    269
14.7.6  all，some，any——数量判断    269
14.8  Oracle高级函数——分析函数与窗口函数    270
14.8.1  排名    271
14.8.2  分区窗口    272
14.8.3  窗口子句    274
14.8.4  主要的分析函数    277
14.9  本章实例    281
14.10  本章小结    281
14.11  常见面试题    282
14.12  习题    282
第15章  Oracle中的控制语句（  教学视频：16分钟）    283
15.1  Oracle中的条件语句    283
15.1.1  利用if else进行条件判断    283
15.1.2  利用case when进行分支判断    284
15.2  Oracle中的循环语句    286
15.2.1  无条件循环    286
15.2.2  while循环    287
15.2.3  for循环    288
15.3  本章实例    289
15.4  本章小结    290
15.5  常见面试题    290
15.6  习题    290
第16章  SQL查询（  教学视频：55分钟）    291
16.1  基本查询    291
16.1.1  select语句查询执行步骤    291
16.1.2  where子句    293
16.1.3  利用distinct获得唯一性记录    294
16.1.4  order by子句    294
16.1.5  group by子句    295
16.1.6  having子句    298
16.2  子查询    299
16.2.1  理解子查询    299
16.2.2  子查询使用实例    299
16.3  联合语句    301
16.3.1  union查询    301
16.3.2  union all查询    302
16.3.3  intersect查询    304
16.3.4  minus查询    304
16.4  连接    305
16.4.1  自然连接    305
16.4.2  内连接    306
16.4.3  外连接——左连接    307
16.4.4  外连接——右连接    309
16.4.5  外连接——完全连接    311
16.5  层次化查询    313
16.5.1  利用connect by进行层次化查询    314
16.5.2  connect by的使用场景    315
16.5.3  sys_connect_by_path()函数的使用    316
16.6  本章实例    317
16.7  本章小结    319
16.8  常见面试题    319
16.9  习题    320
第17章  SQL更新数据（  教学视频：34分钟）    321
17.1  插入数据    321
17.1.1  insert语句向表中插入数据    321
17.1.2  利用子查询批量插入数据    322
17.1.3  insert语句与默认值    323
17.1.4  insert语句与唯一性约束    323
17.1.5  insert语句与外键约束    323
17.2  修改数据    324
17.2.1  利用update修改单列的值    324
17.2.2  利用update修改多列的值    325
17.2.3  利用where子句限制修改范围    325
17.3  删除数据    326
17.3.1  利用delete命令删除数据    326
17.3.2  利用truncate命令删除数据    327
17.4  数据提交与回滚    327
17.4.1  回滚动作    327
17.4.2  提交动作    328
17.4.3  PL/SQL Developer中的回滚与提交    329
17.5  本章实例    331
17.6  本章小结    333
17.7  常见面试题    333
17.8  习题    333
第四篇  Oracle编程高级应用
第18章  数据库速度优化与数据完整性（  教学视频：32分钟）    334
18.1  利用索引加快数据引用    334
18.1.1  索引的原理    334
18.1.2  利用索引提高数据库性能    335
18.1.3  索引对DML的影响    337
18.1.4  索引的使用时机    338
18.2  利用约束保持数据完整性    339
18.2.1  数据库完整性的重要性    339
18.2.2  保持数据库完整性的重要方面    339
18.2.3  利用约束保持数据完整性    339
18.3  本章实例    340
18.3.1  使用比较运算符不当    340
18.3.2  函数的使用    341
18.3.3  联合索引    341
18.4  本章小结    342
18.5  常见面试题    342
18.6  习题    342
第19章  数据一致性与事务管理（  教学视频：46分钟）    343
19.1  什么是数据一致性和事务    343
19.1.1  数据一致性    343
19.1.2  事务    343
19.2  Oracle中的事务处理    344
19.2.1  commit命令    344
19.2.2  rollback命令    345
19.2.3  savepoint和rollback to savepoint命令    345
19.2.4  事务的属性和隔离级别    347
19.3  事务处理原则    351
19.3.1  原子性    351
19.3.2  一致性    352
19.3.3  隔离性    354
19.3.4  持久性    355
19.4  本章实例    355
19.5  本章小结    357
19.6  常见面试题    357
19.7  习题    358
第20章  并发控制（  教学视频：35分钟）    359
20.1  并发与锁定    359
20.2  数据锁定    362
20.2.1  悲观锁定    362
20.2.2  乐观锁定    364
20.2.3  悲观锁定与乐观锁定的比较    365
20.2.4  锁定转换    366
20.3  并发控制的其他方法    366
20.4  本章实例    367
20.5  本章小结    371
20.6  常见面试题    371
20.7  习题    371
第21章  Oracle中的正则表达式（  教学视频：29分钟）    372
21.1  正则表达式简介    372
22.1.1  正则表达式与通配符    372
22.1.2  正则表达式与编程语言    372
21.2  正则表达式基础知识    373
21.2.1  元字符和普通字符    373
21.2.2  量词    373
21.2.3  字符转义与字符类    373
21.2.4  字符组的使用    374
21.2.5  正则表达式分支    374
21.2.6  Oracle中正则表达式的特殊性    374
21.3  正则表达式在Oracle中的应用    375
21.3.1  regexp_like()的使用    375
21.3.2  regexp_instr()的使用    375
21.3.3  regexp_substr()的使用    376
21.3.4  regexp_ replace ()的使用    376
21.4  本章实例    377
21.5  本章小结    377
21.6  常见面试题    378
21.7  习题    378
第五篇  Oracle与编程语言综合使用实例
第22章  Oracle在Java开发中的应用（  教学视频：38分钟）    379
22.1  通过JDBC使用Oracle  379
22.1.1  JDBC简介    379
22.1.2  准备工作    379
22.1.3  JDBC连接Oracle  380
22.1.4  利用JDBC查询数据    382
22.1.5  利用JDBC更新数据    383
22.1.6  总结JDBC操作数据库    384
22.2  通过Hibernate操作Oracle数据库    385
22.2.1  准备工作    385
22.2.2  配置Hibernate  385
22.2.3  利用Hibernate查询数据    389
22.2.4  利用Hibernate更新数据    390
22.2.5  利用Hibernate插入数据    391
22.3  本章小结    393
22.4  常见面试题    393
22.5  习题    393
第23章  Oracle在C#开发中的应用（  教学视频：12分钟）    394
23.1  在C#中连接Oracle数据库    394
23.2  在C#中操作Oracle数据库    395
23.3  在C#中使用Oracle数据库事务    397
23.4  本章小结    400
23.5  常见面试题    400
23.6  习题    400