《Oracle PL/SQL从入门到精通》PDF下载

  • 购买积分:19 如何计算积分?
  • 作  者:丁士锋等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2012
  • ISBN:9787302281030
  • 页数:655 页
图书介绍:本书以面向应用为原则,介绍了Oracle平台上使用PL/SQL语言进行数据库开发的技术。

第1篇 PL/SQL开发入门 2

第1章 Oracle 11g数据库系统(教学视频:40分钟) 2

1.1 关系型数据库系统介绍 2

1.1.1 什么是关系型数据模型 3

1.1.2 数据库系统范式 3

1.1.3 关系型数据库管理系统 4

1.1.4 使用SQL语句与数据库管理系统通信 5

1.2 初识Oracle 11g 7

1.2.1 Oracle 11g简介 8

1.2.2 Oracle 11g体系结构 9

1.2.3 如何创建数据库 10

1.2.4 比较Oracle数据库与SQL Server数据库 15

1.3 什么是PL/SQL 16

1.3.1 PL/SQL是一种语言 16

1.3.2 PL/SQL的执行环境 17

1.4 搭建PL/SQL开发环境 18

1.4.1 使用SQL*Plus 18

1.4.2 使用Oracle SQL Developer 22

1.4.3 PL/SQL Developer开发PL/SQL 27

1.4.4 Quest Toad开发PL/SQL 31

1.4.5 使用Oracle文档库 37

1.5 小结 38

第2章 PL/SQL基本概念(教学视频:30分钟) 39

2.1 功能特点 39

2.1.1 结构化程序设计 39

2.1.2 与SQL语言整合 43

2.1.3 面向对象开发 44

2.1.4 模块化应用程序开发 45

2.1.5 提高应用程序性能 46

2.2 语言特性 47

2.2.1 PL/SQL块结构 47

2.2.2 变量和类型 52

2.2.3 程序控制语句 53

2.2.4 过程、函数与包 55

2.2.5 触发器 57

2.2.6 结构化异常处理 60

2.2.7 集合与记录 61

2.2.8 游标 63

2.2.9 动态SQL 64

2.3 编码风格 65

2.3.1 PL/SQL词法单位 65

2.3.2 缩进 70

2.3.3 标识符命名规则 71

2.3.4 大小写风格 71

2.3.5 使用工具格式化代码 72

2.4 小结 73

第3章 变量和类型(教学视频:14分钟) 74

3.1 变量 74

3.1.1 变量的声明 74

3.1.2 变量的赋值 75

3.1.3 使用%TYPE 77

3.1.4 使用%ROWTYPE 77

3.1.5 变量的作用域和可见性 79

3.1.6 常量的定义 81

3.2 数据类型 82

3.2.1 字符类型 82

3.2.2 数字类型 88

3.2.3 日期和时间类型 91

3.2.4 布尔类型 95

3.2.5 LOB对象类型 95

3.2.6 引用类型 96

3.2.7 复合类型 98

3.2.8 用户自定义子类型 98

3.2.9 数据类型转换 100

3.3 运算符和表达式 102

3.3.1 运算符类型 102

3.3.2 运算符的优先级 106

3.3.3 表达式类型 107

3.4 小结 108

第4章 PL/SQL控制语句(教学视频:13分钟) 109

4.1 分支控制语句 109

4.1.1 IF-THEN-ELSE语句 109

4.1.2 IF-THEN-ELSIF语句 113

4.1.3 CASE语句 114

4.1.4 搜索CASE语句 116

4.2 循环控制语句 117

4.2.1 LOOP循环 118

4.2.2 使用EXIT退出循环 118

4.2.3 使用EXIT-WHEN退出循环 119

4.2.4 使用CONTINUE继续执行循环 120

4.2.5 WHILE-LOOP循环 121

4.2.6 FOR-LOOP循环 122

4.2.7 循环语句使用建议 124

4.3 顺序控制语句 125

4.3.1 GOTO语句和标签 125

4.3.2 NULL语句 127

4.4 小结 128

第2篇 PL/SQL开发基础 132

第5章 管理数据表(教学视频:33分钟) 132

5.1 创建表 132

5.1.1 数据定义语言DDL 132

5.1.2 CREATE TABLE语句 134

5.1.3 在设计器中创建表 136

5.1.4 创建表副本 138

5.2 创建约束 138

5.2.1 创建主键约束 139

5.2.2 创建外键约束 140

5.2.3 创建检查约束 144

5.2.4 查看表约束 146

5.3 修改表 148

5.3.1 修改表列 149

5.3.2 修改约束 151

5.3.3 移除数据表 154

5.3.4 在设计器中修改表 154

5.4 索引 156

5.4.1 索引简介 156

5.4.2 索引原理 157

5.4.3 创建索引 158

5.4.4 修改索引 160

5.4.5 删除索引 162

5.5 使用视图 163

5.5.1 视图简介 163

5.5.2 创建视图 164

5.5.3 修改视图 168

5.5.4 删除视图 169

5.6 小结 170

第6章 查询数据表(教学视频:33分钟) 171

6.1 简单查询 171

6.1.1 查询表数据 171

6.1.2 指定查询条件 175

6.1.3 排序 182

6.1.4 使用函数 184

6.1.5 统计函数 186

6.1.6 分组统计 188

6.1.7 HAVING子句 190

6.1.8 使用DUAL表 191

6.1.9 ROWNUM伪列 192

6.1.10 ROWID伪列 193

6.2 复杂查询 195

6.2.1 多表连接查询 195

6.2.2 使用子查询 200

6.2.3 表集合操作 203

6.2.4 层次化查询 207

6.3 小结 210

第7章 操纵数据表(教学视频:27分钟) 211

7.1 插入记录 211

7.1.1 数据操纵语言DML 211

7.1.2 插入单行记录 212

7.1.3 插入默认值和NULL值 213

7.1.4 使用子查询插入多行数据 214

7.1.5 使用INSERT插入多表数据 215

7.2 更新记录 217

7.2.1 更新单行记录 217

7.2.2 使用子查询更新记录 218

7.2.3 使用MERGE合并表行 220

7.3 删除记录 221

7.3.1 删除单行记录 221

7.3.2 使用子查询删除记录 222

7.3.3 使用TRUNCATE清除表数据 223

7.4 提交和回滚记录 224

7.4.1 提交更改 224

7.4.2 回滚更改 225

7.5 使用序列 226

7.5.1 序列简介 226

7.5.2 创建数据序列 227

7.5.3 NEXTVAL和CURRVAL伪列 230

7.5.4 使用数据序列 231

7.5.5 修改序列 232

7.5.6 删除序列 233

7.6 同义词 233

7.6.1 同义词简介 234

7.6.2 创建和使用同义词 234

7.7 小结 235

第8章 记录与集合(教学视频:32分钟) 236

8.1 记录类型 236

8.1.1 记录类型简介 236

8.1.2 定义记录类型 238

8.1.3 记录类型赋值 239

8.1.4 操纵记录类型 243

8.1.5 使用嵌套记录 246

8.2 理解集合类型 247

8.2.1 集合简介 247

8.2.2 定义索引表 248

8.2.3 操纵索引表 249

8.2.4 定义嵌套表 252

8.2.5 操纵嵌套表 253

8.2.6 数据库中的嵌套表 254

8.2.7 定义变长数组 257

8.2.8 操纵变长数组 258

8.2.9 数据库中的变长数组 259

8.2.10 选择集合类型 260

8.3 使用集合方法 261

8.3.1 使用EXISTS方法 262

8.3.2 使用COUNT方法 262

8.3.3 使用LIMIT方法 263

8.3.4 FIRST和LAST方法 264

8.3.5 PRIOR和NEXT方法 264

8.3.6 EXTEND方法 265

8.3.7 TRIM方法 267

8.3.8 DELETE方法 268

8.3.9 集合的异常处理 269

8.3.10 使用批量绑定 270

8.3.11 使用BULK COLLECT 272

8.4 小结 273

第9章 SQL内置函数(教学视频:26分钟) 274

9.1 基本函数 274

9.1.1 字符型函数 274

9.1.2 数字型函数 278

9.1.3 日期时间函数 279

9.1.4 类型转换函数 281

9.1.5 分组函数 286

9.1.6 其他函数 286

9.2 Oracle分析函数 290

9.2.1 什么是分析函数 290

9.2.2 基本语法 292

9.2.3 分析函数结构 293

9.2.4 分析函数列表 297

9.3 分析函数使用示例 301

9.3.1 记录排名 301

9.3.2 首尾记录查询 303

9.3.3 前后排名查询 303

9.3.4 层次查询 304

9.3.5 范围统计查询 305

9.3.6 相邻记录比较 306

9.3.7 抑制重复 306

9.3.8 行列转换查询 307

9.3.9 在PL/SQL中使用分析函数 309

9.4 小结 309

第10章 使用游标(教学视频:20分钟) 310

10.1 游标基本结构 310

10.1.1 游标简介 310

10.1.2 游标分类 312

10.1.3 定义游标类型 313

10.1.4 打开游标 315

10.1.5 使用游标属性 316

10.1.6 提取游标数据 319

10.1.7 批量提取游标数据 320

10.1.8 关闭游标 322

10.2 操纵游标数据 322

10.2.1 LOOP循环 322

10.2.2 WHILE循环 323

10.2.3 游标FOR循环 324

10.2.4 修改游标数据 325

10.3 游标变量 327

10.3.1 游标变量简介 327

10.3.2 声明游标变量类型 328

10.3.3 定义游标变量 328

10.3.4 打开游标变量 329

10.3.5 控制游标变量 330

10.3.6 处理游标变量异常 332

10.3.7 在包中使用游标变量 334

10.3.8 游标变量的限制 335

10.4 小结 336

第11章 事务处理和锁定(教学视频:14分钟) 338

11.1 事务处理简介 338

11.1.1 什么是事务处理 338

11.1.2 使用COMMIT提交事务 340

11.1.3 使用ROLLBACK回滚事务 341

11.1.4 使用SAVEPOINT保存点 342

11.1.5 使用SET TRANSACTION设置事务属性 343

11.2 使用锁定 345

11.2.1 理解锁定 345

11.2.2 记录锁定 347

11.2.3 表锁定 347

11.2.4 使用LOCK TABLE 348

11.3 小结 349

第12章 异常处理机制(教学视频:19分钟) 350

12.1 理解异常处理 350

12.1.1 异常处理简介 350

12.1.2 异常处理语法 353

12.1.3 预定义异常 355

12.2 自定义异常 357

12.2.1 声明异常 358

12.2.2 作用域范围 358

12.2.3 使用EXCEPTION_INIT 360

12.2.4 使用RAISE_APPLICATION_ERROR 361

12.2.5 抛出异常 364

12.2.6 处理异常 364

12.2.7 使用SQLCODE和SQLERRM 366

12.3 异常的传递 367

12.3.1 执行时异常传递 367

12.3.2 声明时异常传递 368

12.3.3 异常处理器中的异常 369

12.3.4 重新抛出异常 370

12.3.5 异常处理准则 371

12.4 小结 376

第3篇 PL/SQL进阶编程 378

第13章 PL/SQL子程序(教学视频:18分钟) 378

13.1 子程序结构 378

13.1.1 子程序简介 378

13.1.2 子程序的优点 379

13.1.3 创建过程 380

13.1.4 创建函数 382

13.1.5 RETURN语句 384

13.1.6 查看和删除子程序 385

13.2 子程序参数 387

13.2.1 形参与实参 388

13.2.2 参数模式 389

13.2.3 形式参数的约束 391

13.2.4 参数传递方式 393

13.2.5 参数默认值 394

13.2.6 使用NOCOPY编译提示 395

13.3 子程序进阶技术 397

13.3.1 在SQL中调用子程序 397

13.3.2 嵌套子程序 398

13.3.3 子程序的前向声明 401

13.3.4 重载子程序 402

13.3.5 子程序自治事务 403

13.3.6 递归调用子程序 405

13.3.7 理解子程序依赖性 407

13.3.8 子程序权限管理 410

13.4 小结 412

第14章 包(教学视频:10分钟) 413

14.1 理解PL/SQL包 413

14.1.1 什么是包 413

14.1.2 包的优点 415

14.1.3 定义包规范 415

14.1.4 定义包体 417

14.1.5 调用包组件 419

14.1.6 编译和调试包 421

14.1.7 查看包的源代码 423

14.2 包的进阶技术 424

14.2.1 包重载 425

14.2.2 包初始化 428

14.2.3 包的纯度级别 430

14.2.4 包权限设置 432

14.2.5 在包中使用游标 433

14.3 管理数据库中的包 435

14.3.1 查看和删除包 435

14.3.2 检查包的依赖性 437

14.4 使用系统包 440

14.4.1 使用DBMS_OUTPUT包 440

14.4.2 使用DBMS_PIPE包 444

14.4.3 使用DBMS_ALTER包 450

14.4.4 使用DBMS_JOB包 453

14.5 小结 458

第15章 触发器(教学视频:23分钟) 459

15.1 理解触发器 459

15.1.1 触发器简介 459

15.1.2 定义触发器 461

15.1.3 触发器的分类 462

15.2 DML触发器 463

15.2.1 触发器的执行顺序 463

15.2.2 定义DML触发器 464

15.2.3 调试触发器 467

15.2.4 使用语句触发器 468

15.2.5 使用OLD和NEW谓词 471

15.2.6 使用REFERENCING子句 473

15.2.7 使用WHEN子句 473

15.2.8 使用条件谓词 474

15.2.9 控制触发顺序 476

15.2.10 触发器限制 477

15.2.11 使用自治事务 478

15.3 替代触发器 480

15.3.1 替代触发器的作用 480

15.3.2 定义替代触发器 481

15.3.3 UPDATE与DELETE替代触发器 483

15.3.4 嵌套表替代触发器 486

15.4 系统事件触发器 488

15.4.1 定义系统触发器 488

15.4.2 触发器事件列表 490

15.4.3 触发器属性列表 492

15.4.4 属性函数使用示例 494

15.4.5 定义SERVERERROR触发器 495

15.4.6 触发器的事务与约束 498

15.5 触发器的管理 498

15.5.1 查看触发器源代码 498

15.5.2 删除和禁用触发器 499

15.5.3 名称与权限的管理 500

15.6 小结 502

第16章 动态SQL语句(教学视频:17分钟) 503

16.1 理解动态SQL语句 503

16.1.1 动态SQL语句基础 503

16.1.2 动态SQL语句使用时机 504

16.1.3 本地动态SQL 506

16.2 使用EXECUTE IMMEDIATE 507

16.2.1 EXECUTE IMMEDIATE语法 507

16.2.2 执行SQL语句和PL/SQL语句块 508

16.2.3 使用绑定变量 510

16.2.4 使用RETURNING INTO子句 512

16.2.5 执行单行查询 513

16.2.6 指定参数模式 513

16.3 多行查询语句 514

16.3.1 使用OPEN-FOR语句 515

16.3.2 使用FETCH语句 516

16.3.3 关闭游标变量 517

16.4 使用批量绑定 518

16.4.1 批量EXECUTE IMMEDIATE语法 518

16.4.2 使用批量FETCH语句 520

16.4.3 使用批量FORALL语句 521

16.5 动态SQL的使用建议 522

16.5.1 用绑定变量改善性能 522

16.5.2 使用重复占位符 523

16.5.3 使用调用者权限 524

16.5.4 传递NULL参数 525

16.5.5 动态SQL异常处理 526

16.6 小结 527

第4篇 PL/SQL高级编程 530

第17章 面向对象编程(教学视频:24分钟) 530

17.1 对象基础 530

17.1.1 面向对象简介 530

17.1.2 什么是对象类型 531

17.1.3 PL/SQL中对象的组成结构 532

17.2 定义对象类型 533

17.2.1 定义对象类型 534

17.2.2 定义对象体 535

17.2.3 定义属性 536

17.2.4 定义方法 538

17.2.5 使用SELF关键字 539

17.2.6 定义构造函数 541

17.2.7 定义MAP和ORDER方法 542

17.2.8 使用对象类型 545

17.2.9 使用嵌套对象类型 547

17.2.10 对象继承 550

17.2.11 方法重载 552

17.3 管理对象表 553

17.3.1 定义对象表 553

17.3.2 插入对象表 554

17.3.3 检索对象表 556

17.3.4 更新对象表 560

17.3.5 删除对象表 561

17.3.6 创建对象列 562

17.3.7 使用对象视图 563

17.4 管理对象类型 565

17.4.1 查看对象类型 565

17.4.2 修改对象类型 567

17.5 小结 569

第18章 PL/SQL性能优化建议(教学视频:14分钟) 570

18.1 了解PL/SQL程序性能 570

18.1.1 影响性能常见原因 570

18.1.2 使用DBMS_PROFILER包 573

18.1.3 使用DBMS_TRACE包 578

18.2 PL/SQL性能优化技巧 583

18.2.1 理解查询执行计划 583

18.2.2 连接查询的表顺序 586

18.2.3 指定WHERE条件顺序 586

18.2.4 避免使用*符号 587

18.2.5 使用DECODE函数 587

18.2.6 使用WHERE而非HAVING 588

18.2.7 使用UNION而非OR 589

18.2.8 使用EXISTS而非IN 590

18.2.9 避免低效的PL/SQL流程控制语句 591

18.2.10 避免隐式类型的转换 592

18.3 小结 593

第5篇 PL/SQL案例实战 596

第19章 企业IC芯片欠料计算程序(教学视频:28分钟) 596

19.1 系统设计 596

19.1.1 程序需求简介 596

19.1.2 数据表ER关系图 597

19.1.3 系统总体流程 599

19.1.4 示例环境的搭建 600

19.2 系统编码实现 601

19.2.1 创建包规范 601

19.2.2 初始化数据 603

19.2.3 获取IC芯片需求量 605

19.2.4 IC物料检查函数 606

19.2.5 获取已走货IC芯片数量 607

19.2.6 获取销售订单数量 608

19.2.7 计算企业IC芯片需求量 608

19.2.8 预备下次计算数据 611

19.2.9 定义调用主程序 614

19.3 调试和部署应用程序 614

19.3.1 编译应用程序 614

19.3.2 调试应用程序 615

19.3.3 查看程序结果 617

19.3.4 部署到生产服务器 618

19.4 小结 619

第20章 PL/SQL邮件发送程序(教学视频:33分钟) 620

20.1 系统设计 620

20.1.1 程序需求简介 620

20.1.2 使用UTL_SMTP发送电子邮件 621

20.1.3 系统总体流程 624

20.1.4 示例环境的搭建 625

20.2 系统编码实现 627

20.2.1 认识MIME类型 627

20.2.2 实现MIME类型邮件发送 628

20.2.3 定义包规范 631

20.2.4 邮件初始化函数xm_init 634

20.2.5 发送并关闭连接xm_close 639

20.2.6 发送HTML邮件 639

20.2.7 发送邮件附件 641

20.2.8 发送Excel附件内容 643

20.2.9 写入工作簿wb_header 645

20.2.10 写入工作表xm_worksheet 646

20.2.11 写入表格行xm_ws_row 647

20.2.12 写入工作表尾信息 648

20.2.13 执行SQL语句写入工作表 650

20.3 编译和部署应用程序 652

20.3.1 编译与调试应用程序 652

20.3.2 验证测试结果 653

20.3.3 部署到生产服务器 655

20.4 小结 655