当前位置:首页 > 工业技术
Oracle 12c PL/SQL程序设计终极指南
Oracle 12c PL/SQL程序设计终极指南

Oracle 12c PL/SQL程序设计终极指南PDF电子书下载

工业技术

  • 电子书积分:20 积分如何计算积分?
  • 作 者:孙风栋,王澜,郭晓惠著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2015
  • ISBN:9787111503286
  • 页数:705 页
图书介绍:本书分为三篇,具体内容如下:基础篇介绍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 12c PL/SQL程序设计终极指南》目录

基础篇 2

第1章 PL/SQL概述 2

1.1 什么是PL/SQL 2

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 Plus 18

2.1.1 SQL Plus简介 18

2.1.2 SQL Plus的启动与退出 18

2.1.3 SQL Plus常用命令 21

2.2 SQL Developer 28

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 Developer 36

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 UNION 134

5.9.2 UNION ALL 135

5.9.3 INTERSECT 135

5.9.4 MINUS 135

5.10 分析查询 136

5.10.1 分析查询概述 136

5.10.2 分析查询的语法 136

5.10.3 分析函数的应用 137

5.11 TOP-N与分页查询 139

5.11.1 Oracle 12c之前的TOP-N与分页查询 139

5.11.2 Oracle 12c中的TOP-N与分页查询 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 使用Direct-Path方法插入数据 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

开发篇 258

第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 本地动态SQL 417

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

高级篇 470

第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操作内部LOB 529

19.2.3 利用SQL操作外部LOB 530

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

返回顶部