书籍详情
Oracle
作者:孙风栋 王澜 郭晓惠
出版社:机械工业出版社
出版时间:2015-06-01
ISBN:9787111503286
定价:¥99.00
购买这本书可以去
内容简介
本书分为三篇,具体内容如下:基础篇介绍PL/SQL程序设计的基础知识,包括PL/SQL概述、PL/SQL开发工具、PL/SQL基础、PL/SQL控制语句、数据查询、数据操纵与事务处理、内置SQL函数、PL/SQL中的静态SQL语句、记录以及错误处理等。开发篇主要介绍PL/SQL命名对象的开发,包括PL/SQL子程序、PL/SQL包、子程序依赖性与权限管理、触发器、集合、动态SQL、批绑定等,是PL/SQL程序设计的核心部分。在Oracle项目开发过程中,PL/SQL程序设计的主要任务就是根据业务需要编写各种功能模块,即PL/SQL命名块。高级篇主要介绍Oracle数据库中的对象及其特性、大对象的存储与操作、任务调度管理、PL/SQL性能优化、常用的Oracle内置包等。
作者简介
暂缺《Oracle》作者简介
目录
目 录 Contents
前 言
基 础 篇
第1章 PL/SQL概述2
1.1 什么是PL/SQL2
1.2 PL/SQL优点3
1.3 PL/SQL特性5
1.4 PL/SQL运行机制9
1.4.1 PL/SQL引擎9
1.4.2 PL/SQL单元与编译参数9
1.5 PL/SQL 12.1新特性10
1.6 案例数据库介绍12
1.6.1 案例数据库表与序列12
1.6.2 创建表与序列14
1.6.3 向表中插入数据16
1.7 使用Oracle文档16
1.8 小结17
第2章 PL/SQL开发工具的使用18
2.1 SQL Plus18
2.1.1 SQL Plus简介18
2.1.2 SQL Plus的启动与退出18
2.1.3 SQL Plus常用命令21
2.2 SQL Developer28
2.2.1 SQL Developer简介28
2.2.2 创建数据库连接29
2.2.3 浏览与管理数据库对象30
2.2.4 执行SQL语句31
2.2.5 开发PL/SQL程序32
2.2.6 执行与调试PL/SQL程序33
2.3 PL/SQL Developer36
2.3.1 PL/SQL Developer简介36
2.3.2 连接数据库36
2.3.3 编写与运行PL/SQL程序37
2.3.4 测试PL/SQL程序38
2.4 小结39
第3章 PL/SQL基础40
3.1 PL/SQL程序结构 40
3.1.1 PL/SQL块结构40
3.1.2 PL/SQL块分类42
3.2 PL/SQL词法单元44
3.2.1 字符集44
3.3.2 标识符45
3.2.3 分隔符49
3.2.4 字面值50
3.2.5 注释52
3.3 PL/SQL数据类型53
3.3.1 PL/SQL数据类型概述53
3.3.2 字符类型54
3.3.3 数字类型56
3.3.4 日期/时间类型58
3.3.5 布尔类型63
3.3.6 复合类型64
3.3.7 引用类型64
3.3.8 LOB类型65
3.3.9 %TYPE属性65
3.3.10 %ROWTYPE属性66
3.4 PL/SQL变量与常量67
3.4.1 常量与变量的声明67
3.4.2 变量作用域与可见性67
3.5 运算符与表达式69
3.5.1 运算符69
3.5.2 表达式75
3.6 编译指示77
3.7 小结78
第4章 PL/SQL控制语句79
4.1 条件选择语句79
4.1.1 IF语句79
4.1.2 CASE语句85
4.2 循环语句87
4.2.1 简单循环语句88
4.2.2 WHILE循环语句89
4.2.3 FOR循环语句89
4.2.4 CONTINUE语句92
4.3 顺序控制语句94
4.3.1 GOTO语句94
4.3.2 NULL语句95
4.4 小结96
第5章 数据查询97
5.1 SQL语言概述97
5.1.1 SQL语言介绍97
5.1.2 SQL语言的分类98
5.1.3 SQL语言的特点98
5.2 SELECT语句基本语法99
5.3 简单查询100
5.3.1 无条件查询100
5.3.2 有条件查询103
5.4 查询排序108
5.5 分组查询110
5.5.1 常用的聚集函数110
5.5.2 分组查询的语法112
5.5.3 单列分组查询112
5.5.4 多列分组查询113
5.5.5 使用HAVING子句113
5.5.6 使用ROLLUP 和CUBE子句114
5.5.7 合并分组查询116
5.6 连接查询 117
5.6.1 笛卡尔积连接117
5.6.2 内连接118
5.6.3 自然连接120
5.6.4 使用USING子句的连接121
5.6.5 外连接121
5.7 子查询124
5.7.1 子查询概述124
5.7.2 单行单列子查询125
5.7.3 多行单列子查询125
5.7.4 单行多列子查询127
5.7.5 多行多列子查询127
5.7.6 相关子查询127
5.7.7 在FROM子句中使用子查询129
5.7.8 在DDL语句中使用子查询129
5.7.9 使用WITH子句的子查询130
5.8 层次查询130
5.8.1 层次结构的概念130
5.8.2 层次查询的语法131
5.8.3 层次查询的执行过程132
5.8.4 层次查询相关伪列133
5.9 集合查询134
5.9.1 UNION134
5.9.2 UNION ALL135
5.9.3 INTERSECT135
5.9.4 MINUS135
5.10 分析查询 136
5.10.1 分析查询概述136
5.10.2 分析查询的语法136
5.10.3 分析函数的应用137
5.11 TOPN与分页查询139
5.11.1 Oracle 12c之前的TOPN与分页查询139
5.11.2 Oracle 12c中的TOPN与分页查询140
5.12 小结142
第6章 数据操纵与事务控制143
6.1 数据插入143
6.1.1 数据插入介绍143
6.1.2 INSERT语句的语法144
6.1.3 插入单行记录144
6.1.4 使用子查询插入数据146
6.1.5 使用DirectPath方法插入数据146
6.1.6 无条件多表插入147
6.1.7 有条件多表插入149
6.2 数据修改151
6.2.1 UPDATE语句的语法151
6.2.2 使用子查询修改数据152
6.3 MERGE语句152
6.4 数据删除155
6.4.1 DELETE语句的语法155
6.4.2 使用子查询删除数据156
6.4.3 使用TRUNCATE清除数据156
6.5 事务控制156
6.5.1 事务概述156
6.5.2 Oracle事务的隔离级别157
6.5.3 使用SET TRANSACTION语句设置事务157
6.5.4 事务提交与回滚159
6.6 锁161
6.6.1 Oracle数据库中锁的分类161
6.6.2 Oracle数据库中的DML锁161
6.6.3 使用LOCK TABLE语句162
6.7 小结163
第7章 内置SQL函数164
7.1 内置SQL函数概述164
7.2 单行函数165
7.2.1 数字函数165
7.2.2 字符函数167
7.2.3 日期函数170
7.2.4 转换函数173
7.2.5 空值函数177
7.2.6 其他单行函数179
7.3 聚集函数182
7.4 分析函数184
7.5 其他函数189
7.6 小结189
第8章 PL/SQL中的静态SQL语句191
8.1 静态SQL语句概述191
8.1.1 静态SQL语句类型191
8.1.2 PL/SQL中的SELECT语句192
8.1.3 PL/SQL中的DML语句193
8.1.4 PL/SQL中的字符匹配194
8.2 显式游标195
8.2.1 游标概述195
8.2.2 声明与定义显式游标196
8.2.3 打开与关闭显式游标198
8.2.4 检索显式游标198
8.2.5 显式游标的属性204
8.2.6 显式游标定义中的变量207
8.2.7 参数化显式游标208
8.2.8 FOR UPDATE游标209
8.3 隐式游标212
8.3.1 隐式游标介绍212
8.3.2 隐式游标的属性212
8.4 游标变量214
8.4.1 游标变量简介214
8.4.2 声明游标变量214
8.4.3 打开与关闭游标变量215
8.4.4 检索游标变量216
8.5 游标表达式217
8.6 自治事务220
8.6.1 自治事务的概念220
8.6.2 声明自治程序221
8.6.3 自治事务的控制222
8.6.4 自治触发器223
8.7 小结224
第9章 记录225
9.1 记录类型概述225
9.2 声明记录类型226
9.3 记录类型变量227
9.3.1 声明记录类型变量227
9.3.2 利用%ROWTYPE声明记录类型变量228
9.3.3 记录类型变量赋值229
9.4 记录类型变量的应用231
9.4.1 记录类型变量在SELECT语句中的应用231
9.4.2 记录类型变量在INSERT语句中的应用232
9.4.3 记录类型变量在UPDATE语句中的应用232
9.4.4 DML语句中记录类型变量使用的限制233
9.5 小结233
第10章 错误处理234
10.1 编译警告234
10.2 异常处理概述235
10.2.1 Oracle错误处理机制235
10.2.2 使用异常处理的优点236
10.3 异常的类型238
10.3.1 预定义异常238
10.3.2 内部定义异常239
10.3.3 用户定义异常240
10.4 抛出异常241
10.4.1 用户定义异常的抛出241
10.4.2 预定义异常的抛出241
10.4.3 内部定义异常的抛出242
10.4.4 重新抛出当前异常243
10.4.5 RAISE_APPLICATION_ERROR方法的使用244
10.5 捕获与处理异常245
10.5.1 异常处理器245
10.5.2 OTHERS异常处理器246
10.6 异常的传播249
10.6.1 执行部分异常的传播249
10.6.2 声明部分与异常处理部分异常的传播251
10.7 异常处理策略252
10.7.1 异常处理的基本原则252
10.7.2 异常的范围252
10.7.3 避免未处理的异常253
10.7.4 异常与事务254
10.7.5 错误位置标识255
10.8 小结256
开 发 篇
第11章 PL/SQL子程序258
11.1 PL/SQL子程序概述258
11.1.1 PL/SQL子程序的概念与分类258
11.1.2 PL/SQL子程序的优点259
11.2 独立子程序259
11.2.1 子程序结构259
11.2.2 创建存储过程260
11.2.3 创建函数264
11.3 调用子程序267
11.3.1 调用存储过程268
11.3.2 在PL/SQL程序中调用函数269
11.3.3 在SQL语句中调用函数270
11.4 子程序参数271
11.4.1 形式参数与实际参数271
11.4.2 参数的传递方式272
11.4.3 参数模式272
11.4.4 NOCOPY关键字278
11.4.5 参数的约束279
11.4.6 IN模式参数默认值280
11.4.7 无参子程序281
11.4.8 实参与形参的对应关系281
11.5 嵌套子程序282
11.5.1 嵌套子程序的概念282
11.5.2 嵌套子程序的创建282
11.5.3 嵌套子程序的向前声明283
11.5.4 嵌套子程序的重载284
11.6 独立子程序的管理288
11.7 小结289
第12章 PL/SQL包290
12.1 包概述290
12.1.1 包的概念290
12.1.2 包的分类291
12.1.3 使用包的优点291
12.2 创建包292
12.2.1 包规范292
12.2.2 包体295
12.3 调用包298
12.4 重载包299
12.5 实例化与初始化包300
12.6 包的纯度等级302
12.7 包的状态305
12.7.1 变量持续性305
12.7.2 游标持续性307
12.7.3 SERIALLY_REUSABLE包308
12.8 包编写指南310
12.9 STANDARD包313
12.10 包管理313
12.11 小结314
第13章 子程序依赖性与权限管理315
13.1 对象依赖性概述315
13.1.1 对象依赖性的概念315
13.1.2 对象依赖关系查询316
13.2 子程序的本地依赖性319
13.2.1 子程序的依赖关系319
13.2.2 包的依赖性关系320
13.3 子程序的远程依赖性324
13.3.1 远程依赖关系的建立324
13.3.2 远程依赖失效的识别326
13.4 子程序权限概述327
13.4.1 子程序调用需要的权限327
13.4.2 子程序定义者需要的权限330
13.5 调用者权限与定义者权限332
13.6 小结335
第14章 触发器336
14.1 触发器简介336
14.1.1 触发器的概念336
14.1.2 触发器的作用337
14.1.3 触发器的种类337
14.1.4 触发器的结构338
14.2 简单的DML触发器338
14.2.1 简单DML触发器概述338
14.2.2 语句级简单DML触发器340
14.2.3 行级简单DML触发器342
14.2.4 简单DML触发器的执行顺序345
14.3 INSTEAD OF DML触发器346
14.3.1 INSTEAD OF DML触发器概述346
14.3.2 创建INSTEAD OF DML触发器347
14.3.3 基于视图嵌套表列的INSTEAD OF DML触发器348
14.4 复合DML触发器350
14.4.1 复合DML触发器概述350
14.4.2 创建复合DML触发器351
14.4.3 复合DML触发器应用353
14.5 利用DML触发器保证引用完整性356
14.6 系统触发器360
14.6.1 系统触发器的响应事件360
14.6.2 创建系统触发器361
14.6.3 事件属性函数364
14.7 变异表触发器369
14.7.1 变异表触发器的限制369
14.7.2 变异表触发器应用370
14.8 触发器设计指南372
14.9 触发器管理373
14.9.1 触发器定义的限制373
14.9.2 触发器的禁用与激活373
14.9.3 触发器的修改、重编译与删除374
14.9.4 触发器的信息查询374
14.10 小结375
第15章 集合376
15.1 集合概述376
15.2 联合数组377
15.2.1 联合数组概述377
15.2.2 定义联合数组378
15.2.3 操作联合数组379
15.3 嵌套表382
15.3.1 嵌套表概述382
15.3.2 定义嵌套表382
15.3.3 初始化嵌套表383
15.3.4 操作嵌套表384
15.4 可变数组386
15.4.1 可变数组概述386
15.4.2 可变数组的定义与初始化387
15.4.3 操作可变数组388
15.5 集合方法391
15.6 集合类型变量的比较406
15.6.1 集合类型变量与NULL的比较406
15.6.2 嵌套表变量比较406
15.6.3 嵌套表变量多集合条件比较407
15.7 独立集合类型408
15.7.1 嵌套表在数据库中的应用408
15.7.2 可变数组在数据库中的应用410
15.8 在包中定义的集合类型412
15.9 多维集合413
15.10 小结413
第16章 动态SQL语句415
16.1 动态SQL语句概述415
16.1.1 动态SQL语句的概念415
16.1.2 动态SQL语句与静态SQL语句的比较417
16.2 本地动态SQL417
16.2.1 EXECUTE IMMEDIATE语句418
16.2.2 动态DDL操作419
16.2.3 动态DCL操作420
16.2.4 动态DML操作421
16.2.5 动态单行查询操作423
16.2.6 动态多行查询操作423
16.2.7 在动态SQL语句中调用子程序427
16.2.8 动态SQL语句中的重名占位符429
16.3 DBMS_SQL包430
16.3.1 DBMS_SQL包概述430
16.3.2 DBMS_SQL包中方法介绍431
16.3.3 DBMS_SQL操作流程434
16.3.4 使用DBMS_SQL包执行动态DDL语句435
16.3.5 使用DBMS_SQL包进行动态DML语句436
16.3.6 使用DBMS_SQL包执行动态查询语句 437
16.3.7 使用DBMS_SQL包执行匿名块 440
16.3.8 其他常用DBMS_SQL方法应用441
16.4 小结446
第17章 批绑定447
17.1 批绑定概述447
17.2 FORALL语句449
17.2.1 FORALL语句的语法449
17.2.2 FORALL语句与FOR LOOP语句比较450
17.2.3 批量DML操作451
17.2.4 使用稀疏集合的FORALL语句452
17.2.5 FORALL语句的异常处理457
17.2.6 获取FORALL语句影响的记录数量460
17.3 BULK COLLECT短语461
17.3.1 SELECT BULK COLLECT语句461
17.3.2 FETCH BULK COLLECT语句463
17.3.3 RETURNING BULK COLLECT短语465
17.4 动态批绑定466
17.4.1 动态批量DML操作466
17.4.2 动态批查询操作467
17.5 小结468
高 级 篇
第18章 对象470
18.1 Oracle对象概述470
18.1.1 Oracle对象简介470
18.1.2 使用Oracle对象的优势472
18.1.3 Oracle数据库的对象特性472
18.2 对象类型定义475
18.2.1 对象类型规范475
18.2.2 对象类型体478
18.3 对象类型方法480
18.3.1 MEMBER方法 480
18.3.2 STATIC方法481
18.3.3 MAP与ORDER方法482
18.3.4 构造方法484
18.4 对象类型的继承 486
18.4.1 对象类型继承概述486
18.4.2 FINAL与NOT FINAL对象类型与方法488
18.4.3 创建子对象类型488
18.4.4 方法重定义与重载491
18.4.5 NOT INSTANTIABLE对象类型与方法494
18.5 操作数据库中对象495
18.5.1 创建对象表495
18.5.2 操作对象表499
18.5.3 操作列对象501
18.5.4 对象引用502
18.6 对象视图504
18.6.1 对象视图概述504
18.6.2 创建对象视图505
18.6.3 在对象视图中嵌套对象507
18.6.4 操作对象视图508
18.7 在PL/SQL中使用对象类型509
18.7.1 对象的声明与初始化509
18.7.2 操作PL/SQL中的对象511
18.8 与对象相关的函数和操作符513
18.9 对象类型的管理516
18.9.1 修改对象类型516
18.9.2 删除对象类型520
18.10 小结520
第19章 大对象522
19.1 大对象概述522
19.1.1 为什么使用大对象522
19.1.2 LOB与LONG的比较523
19.1.3 LOB分类524
19.1.4 LOB存储结构与定位器525
19.1.5 LOB操作技术与接口526
19.2 利用SQL操纵LOB对象527
19.2.1 创建包含LOB列的数据库表527
19.2.2 利用SQL操作内部LOB529
19.2.3 利用SQL操作外部LOB530
19.3 DBMS_LOB包531
19.3.1 DBMS_LOB包简介531
19.3.2 DBMS_LOB包中子程序介绍534
19.4 利用PL/SQL操纵LOB对象556
19.4.1 利用DBMS_LOB包操作CLOB对象556
19.4.2 利用DBMS_LOB包操作BLOB对象559
19.4.3 利用DBMS_LOB包操作BFILE对象561
19.5 小结563
第20章 Oracle任务调度564
20.1 Oracle调度器概述564
20.1.1 Oracle调度器的概念564
20.1.2 调度对象565
20.2 作业对象管理568
20.2.1 创建作业对象568
20.2.2 修改作业对象578
20.2.3 运行作业对象579
20.2.4 停止作业对象580
20.2.5 删除作业对象581
20.2.6 禁用作业对象582
20.2.7 激活作业对象583
20.3 程序对象管理583
20.4 调度对象管理588
20.5 小结592
第21章 PL/SQL性能优化593
21.1 PL/SQL性能优化简介593
21.2 子程序内联594
21.3 SQL语句优化596
21.3.1 SQL语句优化概述596
21.3.2 SQL语句执行过程598
21.3.3 将常用程序驻留内存599
21.3.4 有效使用索引600
21.3.5 采用适当的多表连接技术601
21.3.6 SQL语句使用技巧602
21.4 最小化CPU载荷607
21.4.1 优化查询中的函数调用607
21.4.2 优化子程序调用609
21.4.3 优化循环610
21.4.4 优化用于计算的PL/SQL代码611
21.4.5 使用SQL字符函数612
21.4.6 批SQL与批绑定613
21.5 管道函数的使用614
21.5.1 表函数概述614
21.5.2 创建管道表函数614
21.5.3 管道表函数作为转换函数616
21.5.4 检索管道表函数的返回结果集617
21.5.5 向管道表函数传递游标表达式618
21.6 性能优化工具619
21.6.1 使用Profiler API工具620
21.6.2 使用Trace API工具624
21.6.3 使用PL/SQL hierarchical profiler工具628
21.7 小结631
第22章 常用的Oracle内置包632
22.1 Oracle内置包简介632
22.2 DBMS_ALERT包637
22.3 DBMS_DDL包641
22.4 DBMS_FLASHBACK包646
22.5 DBMS_METADATA包650
22.5.1 DBMS_METADATA包简介650
22.5.2 DBMS_METADATA包中子程序651
22.6 DBMS_LOGMNR包 662
22.7 DBMS_LOGMNR_D包665
22.8 DBMS_PIPE包668
22.8.1 Oracle管道通信概述668
22.8.2 DBMS_PIPE包中子程序669
22.9 DBMS_RANDOM包675
22.10 DBMS_ROWID包677
22.11 DBMS_TRANSACTION包683
22.12 UTL_FILE包686
22.13 UTL_TCP包697
22.14 小结705
前 言
基 础 篇
第1章 PL/SQL概述2
1.1 什么是PL/SQL2
1.2 PL/SQL优点3
1.3 PL/SQL特性5
1.4 PL/SQL运行机制9
1.4.1 PL/SQL引擎9
1.4.2 PL/SQL单元与编译参数9
1.5 PL/SQL 12.1新特性10
1.6 案例数据库介绍12
1.6.1 案例数据库表与序列12
1.6.2 创建表与序列14
1.6.3 向表中插入数据16
1.7 使用Oracle文档16
1.8 小结17
第2章 PL/SQL开发工具的使用18
2.1 SQL Plus18
2.1.1 SQL Plus简介18
2.1.2 SQL Plus的启动与退出18
2.1.3 SQL Plus常用命令21
2.2 SQL Developer28
2.2.1 SQL Developer简介28
2.2.2 创建数据库连接29
2.2.3 浏览与管理数据库对象30
2.2.4 执行SQL语句31
2.2.5 开发PL/SQL程序32
2.2.6 执行与调试PL/SQL程序33
2.3 PL/SQL Developer36
2.3.1 PL/SQL Developer简介36
2.3.2 连接数据库36
2.3.3 编写与运行PL/SQL程序37
2.3.4 测试PL/SQL程序38
2.4 小结39
第3章 PL/SQL基础40
3.1 PL/SQL程序结构 40
3.1.1 PL/SQL块结构40
3.1.2 PL/SQL块分类42
3.2 PL/SQL词法单元44
3.2.1 字符集44
3.3.2 标识符45
3.2.3 分隔符49
3.2.4 字面值50
3.2.5 注释52
3.3 PL/SQL数据类型53
3.3.1 PL/SQL数据类型概述53
3.3.2 字符类型54
3.3.3 数字类型56
3.3.4 日期/时间类型58
3.3.5 布尔类型63
3.3.6 复合类型64
3.3.7 引用类型64
3.3.8 LOB类型65
3.3.9 %TYPE属性65
3.3.10 %ROWTYPE属性66
3.4 PL/SQL变量与常量67
3.4.1 常量与变量的声明67
3.4.2 变量作用域与可见性67
3.5 运算符与表达式69
3.5.1 运算符69
3.5.2 表达式75
3.6 编译指示77
3.7 小结78
第4章 PL/SQL控制语句79
4.1 条件选择语句79
4.1.1 IF语句79
4.1.2 CASE语句85
4.2 循环语句87
4.2.1 简单循环语句88
4.2.2 WHILE循环语句89
4.2.3 FOR循环语句89
4.2.4 CONTINUE语句92
4.3 顺序控制语句94
4.3.1 GOTO语句94
4.3.2 NULL语句95
4.4 小结96
第5章 数据查询97
5.1 SQL语言概述97
5.1.1 SQL语言介绍97
5.1.2 SQL语言的分类98
5.1.3 SQL语言的特点98
5.2 SELECT语句基本语法99
5.3 简单查询100
5.3.1 无条件查询100
5.3.2 有条件查询103
5.4 查询排序108
5.5 分组查询110
5.5.1 常用的聚集函数110
5.5.2 分组查询的语法112
5.5.3 单列分组查询112
5.5.4 多列分组查询113
5.5.5 使用HAVING子句113
5.5.6 使用ROLLUP 和CUBE子句114
5.5.7 合并分组查询116
5.6 连接查询 117
5.6.1 笛卡尔积连接117
5.6.2 内连接118
5.6.3 自然连接120
5.6.4 使用USING子句的连接121
5.6.5 外连接121
5.7 子查询124
5.7.1 子查询概述124
5.7.2 单行单列子查询125
5.7.3 多行单列子查询125
5.7.4 单行多列子查询127
5.7.5 多行多列子查询127
5.7.6 相关子查询127
5.7.7 在FROM子句中使用子查询129
5.7.8 在DDL语句中使用子查询129
5.7.9 使用WITH子句的子查询130
5.8 层次查询130
5.8.1 层次结构的概念130
5.8.2 层次查询的语法131
5.8.3 层次查询的执行过程132
5.8.4 层次查询相关伪列133
5.9 集合查询134
5.9.1 UNION134
5.9.2 UNION ALL135
5.9.3 INTERSECT135
5.9.4 MINUS135
5.10 分析查询 136
5.10.1 分析查询概述136
5.10.2 分析查询的语法136
5.10.3 分析函数的应用137
5.11 TOPN与分页查询139
5.11.1 Oracle 12c之前的TOPN与分页查询139
5.11.2 Oracle 12c中的TOPN与分页查询140
5.12 小结142
第6章 数据操纵与事务控制143
6.1 数据插入143
6.1.1 数据插入介绍143
6.1.2 INSERT语句的语法144
6.1.3 插入单行记录144
6.1.4 使用子查询插入数据146
6.1.5 使用DirectPath方法插入数据146
6.1.6 无条件多表插入147
6.1.7 有条件多表插入149
6.2 数据修改151
6.2.1 UPDATE语句的语法151
6.2.2 使用子查询修改数据152
6.3 MERGE语句152
6.4 数据删除155
6.4.1 DELETE语句的语法155
6.4.2 使用子查询删除数据156
6.4.3 使用TRUNCATE清除数据156
6.5 事务控制156
6.5.1 事务概述156
6.5.2 Oracle事务的隔离级别157
6.5.3 使用SET TRANSACTION语句设置事务157
6.5.4 事务提交与回滚159
6.6 锁161
6.6.1 Oracle数据库中锁的分类161
6.6.2 Oracle数据库中的DML锁161
6.6.3 使用LOCK TABLE语句162
6.7 小结163
第7章 内置SQL函数164
7.1 内置SQL函数概述164
7.2 单行函数165
7.2.1 数字函数165
7.2.2 字符函数167
7.2.3 日期函数170
7.2.4 转换函数173
7.2.5 空值函数177
7.2.6 其他单行函数179
7.3 聚集函数182
7.4 分析函数184
7.5 其他函数189
7.6 小结189
第8章 PL/SQL中的静态SQL语句191
8.1 静态SQL语句概述191
8.1.1 静态SQL语句类型191
8.1.2 PL/SQL中的SELECT语句192
8.1.3 PL/SQL中的DML语句193
8.1.4 PL/SQL中的字符匹配194
8.2 显式游标195
8.2.1 游标概述195
8.2.2 声明与定义显式游标196
8.2.3 打开与关闭显式游标198
8.2.4 检索显式游标198
8.2.5 显式游标的属性204
8.2.6 显式游标定义中的变量207
8.2.7 参数化显式游标208
8.2.8 FOR UPDATE游标209
8.3 隐式游标212
8.3.1 隐式游标介绍212
8.3.2 隐式游标的属性212
8.4 游标变量214
8.4.1 游标变量简介214
8.4.2 声明游标变量214
8.4.3 打开与关闭游标变量215
8.4.4 检索游标变量216
8.5 游标表达式217
8.6 自治事务220
8.6.1 自治事务的概念220
8.6.2 声明自治程序221
8.6.3 自治事务的控制222
8.6.4 自治触发器223
8.7 小结224
第9章 记录225
9.1 记录类型概述225
9.2 声明记录类型226
9.3 记录类型变量227
9.3.1 声明记录类型变量227
9.3.2 利用%ROWTYPE声明记录类型变量228
9.3.3 记录类型变量赋值229
9.4 记录类型变量的应用231
9.4.1 记录类型变量在SELECT语句中的应用231
9.4.2 记录类型变量在INSERT语句中的应用232
9.4.3 记录类型变量在UPDATE语句中的应用232
9.4.4 DML语句中记录类型变量使用的限制233
9.5 小结233
第10章 错误处理234
10.1 编译警告234
10.2 异常处理概述235
10.2.1 Oracle错误处理机制235
10.2.2 使用异常处理的优点236
10.3 异常的类型238
10.3.1 预定义异常238
10.3.2 内部定义异常239
10.3.3 用户定义异常240
10.4 抛出异常241
10.4.1 用户定义异常的抛出241
10.4.2 预定义异常的抛出241
10.4.3 内部定义异常的抛出242
10.4.4 重新抛出当前异常243
10.4.5 RAISE_APPLICATION_ERROR方法的使用244
10.5 捕获与处理异常245
10.5.1 异常处理器245
10.5.2 OTHERS异常处理器246
10.6 异常的传播249
10.6.1 执行部分异常的传播249
10.6.2 声明部分与异常处理部分异常的传播251
10.7 异常处理策略252
10.7.1 异常处理的基本原则252
10.7.2 异常的范围252
10.7.3 避免未处理的异常253
10.7.4 异常与事务254
10.7.5 错误位置标识255
10.8 小结256
开 发 篇
第11章 PL/SQL子程序258
11.1 PL/SQL子程序概述258
11.1.1 PL/SQL子程序的概念与分类258
11.1.2 PL/SQL子程序的优点259
11.2 独立子程序259
11.2.1 子程序结构259
11.2.2 创建存储过程260
11.2.3 创建函数264
11.3 调用子程序267
11.3.1 调用存储过程268
11.3.2 在PL/SQL程序中调用函数269
11.3.3 在SQL语句中调用函数270
11.4 子程序参数271
11.4.1 形式参数与实际参数271
11.4.2 参数的传递方式272
11.4.3 参数模式272
11.4.4 NOCOPY关键字278
11.4.5 参数的约束279
11.4.6 IN模式参数默认值280
11.4.7 无参子程序281
11.4.8 实参与形参的对应关系281
11.5 嵌套子程序282
11.5.1 嵌套子程序的概念282
11.5.2 嵌套子程序的创建282
11.5.3 嵌套子程序的向前声明283
11.5.4 嵌套子程序的重载284
11.6 独立子程序的管理288
11.7 小结289
第12章 PL/SQL包290
12.1 包概述290
12.1.1 包的概念290
12.1.2 包的分类291
12.1.3 使用包的优点291
12.2 创建包292
12.2.1 包规范292
12.2.2 包体295
12.3 调用包298
12.4 重载包299
12.5 实例化与初始化包300
12.6 包的纯度等级302
12.7 包的状态305
12.7.1 变量持续性305
12.7.2 游标持续性307
12.7.3 SERIALLY_REUSABLE包308
12.8 包编写指南310
12.9 STANDARD包313
12.10 包管理313
12.11 小结314
第13章 子程序依赖性与权限管理315
13.1 对象依赖性概述315
13.1.1 对象依赖性的概念315
13.1.2 对象依赖关系查询316
13.2 子程序的本地依赖性319
13.2.1 子程序的依赖关系319
13.2.2 包的依赖性关系320
13.3 子程序的远程依赖性324
13.3.1 远程依赖关系的建立324
13.3.2 远程依赖失效的识别326
13.4 子程序权限概述327
13.4.1 子程序调用需要的权限327
13.4.2 子程序定义者需要的权限330
13.5 调用者权限与定义者权限332
13.6 小结335
第14章 触发器336
14.1 触发器简介336
14.1.1 触发器的概念336
14.1.2 触发器的作用337
14.1.3 触发器的种类337
14.1.4 触发器的结构338
14.2 简单的DML触发器338
14.2.1 简单DML触发器概述338
14.2.2 语句级简单DML触发器340
14.2.3 行级简单DML触发器342
14.2.4 简单DML触发器的执行顺序345
14.3 INSTEAD OF DML触发器346
14.3.1 INSTEAD OF DML触发器概述346
14.3.2 创建INSTEAD OF DML触发器347
14.3.3 基于视图嵌套表列的INSTEAD OF DML触发器348
14.4 复合DML触发器350
14.4.1 复合DML触发器概述350
14.4.2 创建复合DML触发器351
14.4.3 复合DML触发器应用353
14.5 利用DML触发器保证引用完整性356
14.6 系统触发器360
14.6.1 系统触发器的响应事件360
14.6.2 创建系统触发器361
14.6.3 事件属性函数364
14.7 变异表触发器369
14.7.1 变异表触发器的限制369
14.7.2 变异表触发器应用370
14.8 触发器设计指南372
14.9 触发器管理373
14.9.1 触发器定义的限制373
14.9.2 触发器的禁用与激活373
14.9.3 触发器的修改、重编译与删除374
14.9.4 触发器的信息查询374
14.10 小结375
第15章 集合376
15.1 集合概述376
15.2 联合数组377
15.2.1 联合数组概述377
15.2.2 定义联合数组378
15.2.3 操作联合数组379
15.3 嵌套表382
15.3.1 嵌套表概述382
15.3.2 定义嵌套表382
15.3.3 初始化嵌套表383
15.3.4 操作嵌套表384
15.4 可变数组386
15.4.1 可变数组概述386
15.4.2 可变数组的定义与初始化387
15.4.3 操作可变数组388
15.5 集合方法391
15.6 集合类型变量的比较406
15.6.1 集合类型变量与NULL的比较406
15.6.2 嵌套表变量比较406
15.6.3 嵌套表变量多集合条件比较407
15.7 独立集合类型408
15.7.1 嵌套表在数据库中的应用408
15.7.2 可变数组在数据库中的应用410
15.8 在包中定义的集合类型412
15.9 多维集合413
15.10 小结413
第16章 动态SQL语句415
16.1 动态SQL语句概述415
16.1.1 动态SQL语句的概念415
16.1.2 动态SQL语句与静态SQL语句的比较417
16.2 本地动态SQL417
16.2.1 EXECUTE IMMEDIATE语句418
16.2.2 动态DDL操作419
16.2.3 动态DCL操作420
16.2.4 动态DML操作421
16.2.5 动态单行查询操作423
16.2.6 动态多行查询操作423
16.2.7 在动态SQL语句中调用子程序427
16.2.8 动态SQL语句中的重名占位符429
16.3 DBMS_SQL包430
16.3.1 DBMS_SQL包概述430
16.3.2 DBMS_SQL包中方法介绍431
16.3.3 DBMS_SQL操作流程434
16.3.4 使用DBMS_SQL包执行动态DDL语句435
16.3.5 使用DBMS_SQL包进行动态DML语句436
16.3.6 使用DBMS_SQL包执行动态查询语句 437
16.3.7 使用DBMS_SQL包执行匿名块 440
16.3.8 其他常用DBMS_SQL方法应用441
16.4 小结446
第17章 批绑定447
17.1 批绑定概述447
17.2 FORALL语句449
17.2.1 FORALL语句的语法449
17.2.2 FORALL语句与FOR LOOP语句比较450
17.2.3 批量DML操作451
17.2.4 使用稀疏集合的FORALL语句452
17.2.5 FORALL语句的异常处理457
17.2.6 获取FORALL语句影响的记录数量460
17.3 BULK COLLECT短语461
17.3.1 SELECT BULK COLLECT语句461
17.3.2 FETCH BULK COLLECT语句463
17.3.3 RETURNING BULK COLLECT短语465
17.4 动态批绑定466
17.4.1 动态批量DML操作466
17.4.2 动态批查询操作467
17.5 小结468
高 级 篇
第18章 对象470
18.1 Oracle对象概述470
18.1.1 Oracle对象简介470
18.1.2 使用Oracle对象的优势472
18.1.3 Oracle数据库的对象特性472
18.2 对象类型定义475
18.2.1 对象类型规范475
18.2.2 对象类型体478
18.3 对象类型方法480
18.3.1 MEMBER方法 480
18.3.2 STATIC方法481
18.3.3 MAP与ORDER方法482
18.3.4 构造方法484
18.4 对象类型的继承 486
18.4.1 对象类型继承概述486
18.4.2 FINAL与NOT FINAL对象类型与方法488
18.4.3 创建子对象类型488
18.4.4 方法重定义与重载491
18.4.5 NOT INSTANTIABLE对象类型与方法494
18.5 操作数据库中对象495
18.5.1 创建对象表495
18.5.2 操作对象表499
18.5.3 操作列对象501
18.5.4 对象引用502
18.6 对象视图504
18.6.1 对象视图概述504
18.6.2 创建对象视图505
18.6.3 在对象视图中嵌套对象507
18.6.4 操作对象视图508
18.7 在PL/SQL中使用对象类型509
18.7.1 对象的声明与初始化509
18.7.2 操作PL/SQL中的对象511
18.8 与对象相关的函数和操作符513
18.9 对象类型的管理516
18.9.1 修改对象类型516
18.9.2 删除对象类型520
18.10 小结520
第19章 大对象522
19.1 大对象概述522
19.1.1 为什么使用大对象522
19.1.2 LOB与LONG的比较523
19.1.3 LOB分类524
19.1.4 LOB存储结构与定位器525
19.1.5 LOB操作技术与接口526
19.2 利用SQL操纵LOB对象527
19.2.1 创建包含LOB列的数据库表527
19.2.2 利用SQL操作内部LOB529
19.2.3 利用SQL操作外部LOB530
19.3 DBMS_LOB包531
19.3.1 DBMS_LOB包简介531
19.3.2 DBMS_LOB包中子程序介绍534
19.4 利用PL/SQL操纵LOB对象556
19.4.1 利用DBMS_LOB包操作CLOB对象556
19.4.2 利用DBMS_LOB包操作BLOB对象559
19.4.3 利用DBMS_LOB包操作BFILE对象561
19.5 小结563
第20章 Oracle任务调度564
20.1 Oracle调度器概述564
20.1.1 Oracle调度器的概念564
20.1.2 调度对象565
20.2 作业对象管理568
20.2.1 创建作业对象568
20.2.2 修改作业对象578
20.2.3 运行作业对象579
20.2.4 停止作业对象580
20.2.5 删除作业对象581
20.2.6 禁用作业对象582
20.2.7 激活作业对象583
20.3 程序对象管理583
20.4 调度对象管理588
20.5 小结592
第21章 PL/SQL性能优化593
21.1 PL/SQL性能优化简介593
21.2 子程序内联594
21.3 SQL语句优化596
21.3.1 SQL语句优化概述596
21.3.2 SQL语句执行过程598
21.3.3 将常用程序驻留内存599
21.3.4 有效使用索引600
21.3.5 采用适当的多表连接技术601
21.3.6 SQL语句使用技巧602
21.4 最小化CPU载荷607
21.4.1 优化查询中的函数调用607
21.4.2 优化子程序调用609
21.4.3 优化循环610
21.4.4 优化用于计算的PL/SQL代码611
21.4.5 使用SQL字符函数612
21.4.6 批SQL与批绑定613
21.5 管道函数的使用614
21.5.1 表函数概述614
21.5.2 创建管道表函数614
21.5.3 管道表函数作为转换函数616
21.5.4 检索管道表函数的返回结果集617
21.5.5 向管道表函数传递游标表达式618
21.6 性能优化工具619
21.6.1 使用Profiler API工具620
21.6.2 使用Trace API工具624
21.6.3 使用PL/SQL hierarchical profiler工具628
21.7 小结631
第22章 常用的Oracle内置包632
22.1 Oracle内置包简介632
22.2 DBMS_ALERT包637
22.3 DBMS_DDL包641
22.4 DBMS_FLASHBACK包646
22.5 DBMS_METADATA包650
22.5.1 DBMS_METADATA包简介650
22.5.2 DBMS_METADATA包中子程序651
22.6 DBMS_LOGMNR包 662
22.7 DBMS_LOGMNR_D包665
22.8 DBMS_PIPE包668
22.8.1 Oracle管道通信概述668
22.8.2 DBMS_PIPE包中子程序669
22.9 DBMS_RANDOM包675
22.10 DBMS_ROWID包677
22.11 DBMS_TRANSACTION包683
22.12 UTL_FILE包686
22.13 UTL_TCP包697
22.14 小结705
猜您喜欢