
Oracle PL/SQL宝典(第2版)
《Oracle PL/SQL宝典(第2版)》是电子工业出版社出版的图书,作者是赵越。
基本介绍
- 书名:Oracle PL/SQL宝典(第2版)
- 作者:赵越
- ISBN:7121214938
- 页数:524页
- 出版社:电子工业出版社
- 装帧:平装
- 语种:简体中文
内容简介
Oracle PL/SQL宝典(第2版)作者结合多年的Oracle开发经验和心得体会,花费了一年多的时间写作本书,希望各位读者能在本书的引领下学习PL/SQL语言。本书全面、系统、深入地介绍了PL/SQL语言的开发技术,并以大量实例贯穿于全书的讲解之中,还详细介绍了如何对资料库进行管理、备份与恢复以及性能最佳化,最后讲解了Oracle的套用系统项目案例。学习完本书后,读者应该可以更加全面地掌握PL/SQL语言。
目录
第1篇 PL/SQL简介
第1章 走进Oracle 2
1.1 资料库系统与数据模型 2
1.1.1 基本术语 2
1.1.2 资料库技术的发展 3
1.1.3 数据模型 5
1.2 资料库系统的体系结构 6
1.2.1 资料库系统的三级模式 6
1.2.2 资料库管理系统 7
1.2.3 资料库系统的工作流程 8
1.3 关係资料库的简单介绍 9
1.3.1 关係资料库的基本特性 10
1.3.2 关係资料库的设计规範 10
1.4 认识Oracle 11g R2 11
1.4.1 什幺是Oracle 11g R2 11
1.4.2 Oracle的发展历程 12
1.4.3 Oracle 11g R2的新特性 13
1.5 小结 13
第2章 认识PL/SQL 14
2.1 SQL语言概述 14
2.2 什幺是PL/SQL 19
2.3 PL/SQL在SQL*Plus中的使用 26
2.3.5 SQL*Plus删除命令 31
2.3.6 SQL*Plus清除缓冲区命令 32
2.3.7 SQL*Plus显示缓冲区内容命令 33
2.3.8 SQL*Plus保存命令 34
2.3.9 查询结果的格式化 36
2.3.10 注释的使用 43
2.3.11 在SQL*Plus中编辑语句 44
2.4 PL/SQL在SQL Developer中的使用 45
2.5 小结 47
第2篇 PL/SQL基础
第3章 数据表的基本操作 50
3.1 创建表 50
3.1.3 创建表实例 52
3.2 约束 54
3.2.1 约束的类型 55
3.2.2 创建一个带检查约束的表 55
3.2.3 创建一个带非空约束的表 56
3.2.4 创建一个带唯一约束的表 57
3.2.5 创建一个带外键约束的表 58
3.2.6 创建一个含多个约束的表 61
3.3 修改表 62
3.3.2 给表添加约束 65
3.3.3 删除表中的约束 66
3.4 删除表 67
3.5 重命名表 67
3.6 使用企业管理器操作表 67
3.6.1 启用企业管理器 68
3.6.2 使用企业管理器创建表 69
3.6.4 使用企业管理器删除表 74
3.7 小结 75
第4章 表中数据的基本操作 76
4.1 查询数据表 76
4.1.1 查询表中的数据 76
4.1.2 使用SQL Developer工具查询表中的数据 77
4.2 添加数据 79
4.2.1 添加操作的基本语法 79
4.2.2 直接向表中添加数据 80
4.2.3 数据中NULL值的处理 82
4.2.4 插入值是默认值的处理 84
4.2.5 插入值是唯一值的处理 85
4.2.6 使用INSERT...SELECT插入数据 86
4.2.7 使用SQL Developer工具添加数据 87
4.3 修改数据 88
4.3.1 修改操作的基本语法 88
4.3.2 使用UPDATE语句更新数据行 89
4.3.3 根据条件修改表中的数据 91
4.3.4 使用SQL Developer工具修改数据 91
4.4 删除数据 91
4.4.1 删除操作的基本语法 91
4.4.2 删除表中的数据 92
4.4.3 有关TRUNCATE的使用 92
4.4.4 使用SQL Developer工具删除数据 94
4.5 小结 94
第5章 数据的基本查询 95
5.1 查询语句的基础 95
5.1.1 查询语句语法 95
5.1.2 查询各关键字的顺序及功能 96
5.1.3 查询语句执行顺序 96
5.2 最容易理解的查询 97
5.2.1 增加实验数据 97
5.2.2 查询表中列的数据 99
5.2.3 查询所有列 101
5.2.4 去除查询结果中的重複记录 102
5.2.5 返回查询的部分数据 104
5.3 带条件的查询 104
5.3.1 单一的条件查询 105
5.3.2 查询中使用比较表达式 106
5.3.3 使用简单逻辑表达式 108
5.3.4 有关NULL值的判断 114
5.3.5 有关模糊查询 115
5.3.6 指定数据範围 120
5.3.7 如何限制检索数据範围 122
5.3.8 定义转义符 123
5.4 排序查询结果 125
5.4.1 基本排序 125
5.4.2 多列排序 129
5.5 PL/SQL中的运算符 131
5.5.1 算术运算符 132
5.5.2 比较运算符 132
5.5.3 逻辑运算符 132
5.5.4 字元串连线符 133
5.5.5 赋值运算符 133
5.5.6 运算符的优先权 133
5.6 查询中表达式的使用 134
5.6.1 使用连线符连线列 134
5.6.2 算术表达式的使用 136
5.7 小结 137
第6章 查询中函式的使用 138
6.1 常用的单行函式 138
6.1.1 字元处理函式 138
6.1.2 数值处理函式 143
6.1.3 日期处理函式 146
6.1.4 转换函式 149
6.1.5 替换NULL值函式 151
6.1.6 排除指定条件函式 152
6.2 聚合函式 152
6.2.1 聚合函式的种类 152
6.2.2 计数函式 153
6.2.3 求和函式 155
6.2.4 均值函式 156
6.2.5 最大值/最小值函式 158
6.2.6 统计函式 160
6.2.7 聚合函式的重值处理 161
6.3 分组查询 162
6.3.1 简单分组 162
6.3.2 多列分组 163
6.3.3 分组查询中NULL值的处理 164
6.3.4 汇总数据运算符 165
6.3.5 筛选分组结果 168
6.4 其他函式 170
6.4.1 返回登录名函式 170
6.4.2 返回SESSIONID和
LANGUAGE函式 170
6.4.3 数据匹配函式 171
6.5 小结 172
第7章 查询中特殊的转换函式 173
7.1 基本的转换函式 173
7.1.1 数据类型的自动转换 173
7.1.2 关于自动转换的注意事项 176
7.2 特殊的转换函式 177
7.3 变换函式 178
7.3.1 TRANSLATE函式 178
7.3.2 DECODE函式 180
7.4 小结 182
第8章 数据表的高级查询 183
8.1 理解什幺是多表连线 183
8.1.1 什幺是连线 183
8.1.2 连线的类型与实现 184
8.2 简单的多表查询 184
8.2.1 创建实例表 185
8.2.2 如何实现多表查询 186
8.2.3 指定连线条件 187
8.2.4 使用别名作为表名的简写 188
8.2.5 自连线表进行查询 189
8.3 表的连线查询 192
8.3.1 基本连线语法 193
8.3.2 内部连线 193
8.3.3 自然连线 196
8.3.4 外部连线 198
8.3.5 交叉连线 203
8.3.6 连线中空值问题 204
8.3.7 表的连线与聚合分析 206
8.4 集合运算 208
8.4.1 集合运算的种类 208
8.4.2 UNION的使用 208
8.4.3 有关多表的UNION操作 211
8.4.4 UNION与JOIN的区别 212
8.4.5 MINUS与INTERSECT的使用 213
8.5 子查询的使用 217
8.5.1 认识子查询 217
8.5.2 非相关子查询与相关子查询 217
8.5.3 子查询的组成 219
8.5.4 子查询的使用方式及限制 220
8.6 在子查询中使用各种限制条件 220
8.6.1 比较运算符引入子查询 221
8.6.2 子查询中的聚合函式 223
8.6.3 在子查询中使用IN 224
8.7 在子查询中使用EXISTS 227
8.7.1 使用EXISTS的子查询 228
8.7.2 EXISTS子查询的使用 229
8.7.3 使用EXISTS子查询检查表中的重複行 230
8.8 子查询的其他套用 231
8.8.1 在子查询中使用ROWNUM关键字 231
8.8.2 在SELECT子句中使用子查询 234
8.8.3 在HAVING子句中使用子查询 235
8.8.4 在数据操纵语言(DML)中使用子查询 236
8.9 小结 238
第3篇 PL/SQL高级技术
第9章 索引和视图的使用 240
9.1 索引及其操作 240
9.1.1 什幺是索引 240
9.1.2 索引的种类及语法 240
9.1.3 索引的创建 241
9.1.4 创建索引的注意事项 246
9.1.5 索引的管理 246
9.2 视图及其套用 250
9.2.1 什幺是视图 250
9.2.2 视图的作用 251
9.3 创建视图 251
9.3.1 视图的语法 251
9.3.2 创建单表视图 252
9.3.3 创建多表视图 253
9.3.4 视图的视图 254
9.3.5 无源表视图 255
9.3.6 设定视图唯读 255
9.3.7 设定视图的检查约束 257
9.3.8 内嵌视图的使用 259
9.3.9 查询视图的定义和相关信息 259
9.4 修改、删除视图 260
9.4.1 修改视图内容 260
9.4.2 删除视图 261
9.5 小结 262
第10章 序列 263
10.1 创建序列 263
10.2 使用序列 265
10.3 序列属性 269
10.3.1 创建序列的注意事项 269
10.3.2 指定序列的初始值 269
10.3.3 序列的最大值和最小值 270
10.3.4 序列的步长 271
10.3.5 序列的循环取值 272
10.3.6 序列的快取大小 273
10.4 小结 274
第11章 数据类型、流程控制和游标 275
11.1 PL/SQL数据类型 275
11.1.1 标量类型 275
11.1.2 複合类型 276
11.2 变数和常量 284
11.2.1 变数的声明语法 284
11.2.2 常量的声明语法 285
11.3 程式流控制语句 285
11.3.1 IF...ELSE条件选择结构 286
11.3.2 CASE条件控制语句 291
11.3.3 LOOP循环控制语句 295
11.4 游标 300
11.4.1 游标的概念 301
11.4.2 显式游标的定义和操作 302
11.4.3 显式游标的属性 306
11.4.4 隐式游标 308
11.5 小结 311
第12章 存储过程、函式 312
12.1 理解存储过程 312
12.1.1 认识存储过程 312
12.1.2 存储过程的优点 312
12.1.3 存储过程的语法 313
12.2 存储过程的创建和执行 313
12.2.1 存储过程的执行 313
12.2.2 创建无参数的存储过程 314
12.2.3 带有输入参数的存储过程 318
12.2.4 带有输出参数的存储过程 321
12.3 存储过程的管理 323
12.3.1 查看存储过程 323
12.3.2 查看存储过程的错误 324
12.3.3 修改存储过程 326
12.3.4 存储过程的重新编译 326
12.3.5 删除存储过程 327
12.4 函式 327
12.4.1 函式的组成和语法 327
12.4.2 创建无参数函式 328
12.4.3 创建有参数函式 330
12.4.4 查看函式 335
12.4.5 修改函式 336
12.4.6 重新编译函式 337
12.4.7 删除函式 338
12.5 小结 338
第13章 程式包 339
13.1 程式包简介 339
13.2 构建程式包的规则 339
13.2.1 程式包规範 339
13.2.2 程式包主体 341
13.3 调用程式包中的函式/存储过程 343
13.4 删除程式包 343
13.5 小结 344
第14章 触发器 345
14.1 触发器的基本概念 345
14.1.1 触发器简介 345
14.1.2 触发器的类型 345
14.1.3 触发器的作用及使用 346
14.1.4 触发器的执行环境 346
14.2 触发器的创建和使用 347
14.2.1 触发器的语法和组成 347
14.2.2 创建DML触发器 349
14.2.3 替代类型触发器 360
14.2.4 複合类型触发器 362
14.2.5 DDL类型触发器 364
14.3 触发器管理 366
14.3.1 查看触发器 366
14.3.2 修改触发器 367
14.3.3 删除触发器 369
14.4 小结 370
第15章 异常处理 371
15.1 理解异常 371
15.1.1 异常的分类 371
15.1.2 异常的结构 372
15.2 异常的套用 372
15.2.1 预定义异常 373
15.2.2 非预定义异常 377
15.2.3 自定义异常 379
15.3 小结 380
第16章 事务和锁 381
16.1 事务控制的基本概念 381
16.1.1 事务控制的必要性 381
16.1.2 事务的ACID特性及实现 382
16.1.3 事务的状态 382
16.1.4 PL/SQL中事务的执行 383
16.2 PL/SQL中事务的实现 384
16.2.1 事务的类型 384
16.2.2 提交事务 385
16.2.3 设定事务的保存点 387
16.3 并发控制及其实现 388
16.3.1 并发访问的常见问题 389
16.3.2 什幺是锁 390
16.3.3 锁的分类 390
16.3.4 事务隔离级别 392
16.3.5 事务阻塞及其解决方法 394
16.3.6 死锁 396
16.4 小结 398
第17章 安全管理 399
17.1 用户管理 399
17.1.1 什幺是用户 399
17.1.2 创建用户 399
17.1.3 修改用户 405
17.1.4 删除用户 407
17.2 许可权管理 409
17.2.1 授予许可权 409
17.2.2 许可权回收 413
17.2.3 查看许可权 415
17.3 角色管理 416
17.3.1 理解角色 416
17.3.2 创建角色 417
17.3.3 角色的管理设定 419
17.3.4 修改、删除角色 420
17.4 概要档案(PROFILE) 421
17.4.1 理解概要档案 421
17.4.2 创建概要档案 421
17.4.3 修改、删除概要档案 424
17.4.4 查询概要档案 425
17.5 小结 426
第18章 动态SQL和动态PL/SQL 427
18.1 动态SQL 427
18.1.1 EXECUTE IMMEDIATE语句 427
18.1.2 OPEN FOR语句 428
18.1.3 4种动态SQL方法 429
18.2 动态PL/SQL 431
18.3 小结 431
第19章 管理PL/SQL代码 432
19.1 管理资料库中的代码 432
19.1.1 数据字典视图概述 432
19.1.2 显示存储对象的信息 433
19.1.3 原始码的显示和搜寻 434
19.1.4 通过数据字典视图查看编译器属性 434
19.1.5 通过视图分析和更改触发器的状态 436
19.1.6 分析参数信息 437
19.2 依赖关係的管理和代码的重编译 437
19.2.1 通过数据字典视图查看依赖关係 437
19.2.2 失效的程式单元的重编译 438
19.3 编译时警告 439
19.4 PL/SQL程式的执行和调试 441
19.4.1 PL/SQL程式的执行 441
19.4.2 PL/SQL程式的调试 442
19.4.3 调试技巧和策略 442
19.5 I/O操作与PL/SQL 446
19.5.1 显示信息 446
19.5.2 启用DBMS_OUTPUT 446
19.6 套用安全与PL/SQL 448
19.7 小结 449
第20章 PL/SQL语句最佳化 450
20.1 一般的SQL技巧 450
20.1.1 在查询中儘量不使用“*” 450
20.1.2 多表查询时多使用别名 450
20.1.3 条件查询多使用WHERE 451
20.1.4 计算时不用索引列 451
20.1.5 指定查询範围时多使用IN 452
20.1.6 使用TRUNCATE清空表中记录 453
20.1.7 及时提交事务 453
20.1.8 DECODE函式的使用 454
20.1.9 多使用EXISTS语句判断条件 455
20.1.10 其他技巧 455
20.2 Oracle最佳化器 456
20.2.1 Oracle最佳化器的分类 456
20.2.2 Oracle最佳化器的模式 457
20.2.3 查看Oracle执行计画 457
20.3 SQL性能指导 458
20.3.1 ADDM 458
20.3.2 SQL访问指导 458
20.3.3 SQL最佳化指导 462
20.4 小结 462
第21章 备份与恢复 463
21.1 备份与恢复简介 463
21.1.1 备份 463
21.1.2 恢复 463
21.2 逻辑备份与恢复 463
21.2.1 使用expdp和impdp工具进行逻辑备份与恢复 463
21.2.2 使用OEM进行逻辑备份与恢复 466
21.3 脱机备份与恢复 475
21.3.1 脱机备份 475
21.3.2 脱机恢复 476
21.4 在线上备份与恢复 476
21.4.1 使用RMAN管理备份与恢复 477
21.4.2 恢复 479
21.5 小结 482
第4篇 Oracle套用开发
第22章 在.NET中连线Oracle资料库 484
22.1 ADO.NET概述 484
22.1.1 什幺是ADO.NET 484
22.1.2 ADO.NET中的对象 484
22.2 使用绑定的方式连线Oracle资料库 485
22.2.1 数据控制项概述 485
22.2.2 使用DataGridView控制项绑定Oracle资料库 486
22.3 使用代码的方式连线Oracle资料库 492
22.3.1 使用Command对象操作Oracle资料库 492
22.3.2 使用DataSet对象存储查询结果 494
22.3.3 商品信息存储实例 495
22.4 小结 499
第23章 在Java中连线Oracle资料库 500
23.1 JDBC与ODBC简介 500
23.1.1 什幺是JDBC 500
23.1.2 什幺是ODBC 501
23.2 使用Thin方式连线Oracle资料库 502
23.3 使用JDBC-ODBC桥连线Oracle资料库 510
23.3.1 配置ODBC数据源 510
23.3.2 连线Oracle资料库 513
23.4 小结 513
前言
Oracle 11g R2是一款优秀的关係型资料库,广泛地套用在各行各业中。Oracle资料库产品具有较好的安全性、稳定性和优异的性能,占领了资料库市场的大部分份额。要使用Oracle设计应用程式,就要学习Oracle自己的语言——PL/SQL语言。PL/SQL语言不仅能在Oracle内部使用,还能在自己的应用程式中使用。多种Oracle操作工具如SQL Developer、SQL*Plus中都可以使用PL/SQL语言。尤其是在编写应用程式时如果使用Oracle资料库,则学习PL/SQL更是至关重要的。
本书特色
1.涵盖PL/SQL编程的各种语法
本书涵盖了使用PL/SQL建表、操作表中的数据、PL/SQL的流程控制语句、存储过程和函式、触发器、游标、用户管理等PL/SQL编程语法的讲解。
2.示例驱动,学习性强
本书每章都提供了大量的示例,在完成这些示例的同时读者也能更快地学习和掌握PL/SQL语言的使用。此外,这些示例全部在真实环境中演练过并截取效果图,使读者学习起来很方便。
3.讲解由浅入深,循序渐进,适合各个层次的读者阅读
本书从PL/SQL的基础开始讲解,逐步深入到PL/SQL的高级开发技术及套用,内容梯度从易到难,讲解由浅入深,循序渐进,适合各个层次的读者阅读,并均有所获。
4.详解典型项目案例开发,提高实战水平
本书详细介绍了在.NET中连线Oracle和在Java中连线Oracle项目案例的开发。通过这两个项目案例,可以让读者理解在案例开发中如何连线资料库。
本书内容及体系结构
第1篇 PL/SQL简介(第1~2章)
本篇主要内容包括:走进Oracle、认识PL/SQL等。通过本篇的学习,读者可以掌握Oracle开发环境和PL/SQL语言的入门知识。
第2篇 PL/SQL基础(第3~8章)
本篇主要内容包括:数据表的创建和操作、表中数据的操作、数据的基本查询、查询中函式的使用、查询中特殊的转换函式、数据表的高级查询等内容。通过本篇的学习,读者可以掌握使用PL/SQL语句查询数据表中的数据,添加、删除、修改数据等内容,以及相关的函式。
第3篇 PL/SQL高级技术(第9~21章)
本篇主要内容包括:索引和视图的使用、序列的使用、数据类型和流程控制、游标的使用、存储过程和函式的使用、触发器的使用、在使用PL/SQL编程时异常的处理、事务和锁、安全管理、PL/SQL代码的管理以及PL/SQL语句最佳化、备份和恢复访问技术等。通过本篇的学习,读者可以掌握如何使用PL/SQL语言进行编程和最佳化PL/SQL语句。
第4篇 Oracle套用开发(第22~23章)
本篇主要内容包括:在.NET中连线Oracle,在Java中连线Oracle等。通过本篇的学习,读者可以掌握真正的项目开发中的资料库连线技术。
学习建议
书中列举了很多实际的例子,希望这些例子对大家有所帮助。
坚持编程:编程需要大量的练习。
学习本书时,需要从总体框架掌握Oracle的脉络,而不只是学习PL/SQL语句。
本书读者对象
需要全面学习PL/SQL开发技术的人员;
使用各种语言的软体程式设计师;
Oracle资料库管理员;
专业培训机构的学员;
软体开发项目经理;
社会培训班学员;
需要案头必备一本PL/SQL查询手册的人员。
致谢
本书主要由赵越(渤海大学)编写。由于时间匆忙,编写中难免有所疏漏和不妥之处,敬请不吝指正。