剑破冰山
剑破冰山封面图

剑破冰山

卢涛, 主编

出版社:电子工业出版社

年代:2010

定价:69.0

书籍简介:

本书是一本通过讲解Oracle数据库开发案例来说明Oracle数据库的功能特性、编程思路和设计方法的书籍。通过对每个案例的详细分析和讲解,使读者了解对同一类开发任务应如何做并能够领会为什么这么做,达到融会贯通的目的。主要面向中、高级用户,所以读者最好具有一定的Oracle数据库使用基础和程序设计基础(如熟悉基本SQL语句和任何一种过程语言),最好有一定的程序设计经验。

书籍目录:

第1章 大话数据库编程规范\t1

1.1 编程规范概述\t1

1.2 书写规范\t2

1.2.1 大小写风格\t2

1.2.2 缩进风格\t2

1.2.3 空格及换行\t3

1.2.4 其他\t4

1.3 命名规范\t4

1.3.1 表和字段命名规范\t4

1.3.2 其他对象命名\t5

1.4 变量命名\t7

1.5 注释规范\t8

1.6 语法规范\t9

1.7 脚本规范\t12

规则1.7.1\t13

规则1.7.2\t13

规则1.7.3\t13

第2章 Oracle开发常用工具及使用\t14

2.1 AWR工具与性能优化\t14

2.1.1 AWR介绍\t14

2.1.2 AWR的安装与配置\t15

2.1.3 AWR报表使用\t15

2.1.4 分析AWR报表基本思路\t17

2.1.5 案例\t17

2.2 SQL_TRACE/10046事件\t24

2.2.1 SQL_TRACE/10046事件是什么\t24

2.2.2 总体流程介绍\t24

2.2.3 SQL_TRACE/10046事件具体使用方法\t24

2.2.4 案例分析\t28

2.2.5 小结\t32

2.3 计时和剖析工具\t32

2.3.1 PLSQL_PROFILER概述\t34

2.3.2 剖析举例\t37

2.3.3 安全性\t45

第3章 探索MERGE方法\t46

3.1 MERGE是什么\t46

3.2 Oracle 10g中MERGE的完善\t48

3.2.1 UPDATE和INSERT动作可只出现其一\t48

3.2.2 可对MERGE语句加条件\t48

3.2.3 可用DELETE子句清除行\t49

3.2.4 可采用无条件方式INSERT\t49

3.3 MERGE误区探索\t49

3.3.1 无法在源表中获得一组稳定的行\t49

3.3.2 DELETE子句的WHERE顺序必须在最后\t51

3.3.3 DELETE 子句只可以删除目标表,而无法删除源表\t52

3.3.4 更新同一张表的数据,需担心USING的空值\t53

3.4 MERGE的巧妙运用\t54

第4章 神秘的NULL和令人讨厌的CHAR\t58

4.1 神秘的NULL\t59

4.1.1 NULL概述\t59

4.1.2 NULL与函数\t64

4.1.3 NULL与索引\t79

4.1.4 NULL与SQL\t87

4.1.5 NULL与PL/SQL\t97

4.1.6 再谈NULL和空字符串区别\t101

4.1.7 NULL总结\t101

4.2 令人讨厌的CHAR\t102

4.2.1 CHAR与VARCHAR2基础\t102

4.2.2 CHAR与SQL\t105

4.2.3 CHAR与绑定变量\t109

4.2.4 CHAR与PL/SQL\t111

4.2.5 CHAR总结\t112

第5章 报表开发之扩展GROUP BY\t113

5.1 扩展GROUP BY概述\t113

5.2 ROLLUP\t114

5.2.1 UNION ALL实现ROLLUP功能\t114

5.2.2 ROLLUP分组\t116

5.2.3 部分ROLLUP分组\t120

5.2.4 ROLLUP总结\t121

5.3 CUBE\t121

5.3.1 CUBE分组\t121

5.3.2 部分CUBE分组\t123

5.3.3 CUBE总结\t124

5.4 GROUPING SETS实现小计\t124

5.4.1 GROUPING SETS分组\t124

5.4.2 部分GROUPING SETS分组\t126

5.4.3 CUBE、ROLLUP作为GROUPING SETS的参数\t126

5.4.4 GROUPING SETS总结\t128

5.5 组合列分组、连接分组、重复列分组\t128

5.5.1 组合列分组\t130

5.5.2 连接分组\t132

5.5.3 重复列分组\t134

5.5.4 组合列分组、连接分组、重复列分组总结\t134

5.6 3个扩展分组函数:GROUPING、GROUPING_ID、GROUP_ID\t135

5.6.1 GROUPING函数\t135

5.6.2 GROUPING_ID函数\t138

5.6.3 GROUP_ID函数\t142

5.6.4 扩展GROUP BY函数总结\t144

5.7 扩展分组综合实例\t144

第6章 探索Oracle自动类型转换\t149

6.1 为什么不建议使用自动类型转换\t150

6.2 自动类型转换规则\t156

6.3 自动类型转换常见错误\t166

第7章 Where in list问题解析\t169

7.1 问题引入:动态SQL构造\t170

7.2 使用正则表达式解决\t172

7.3 使用常规字符串函数及动态视图\t173

7.4 使用集合构造伪表\t176

7.5 Where in list性能问题\t178

7.6 Where in list问题总结\t188

第8章 例说数据库表设计和大量数据处理方法\t189

8.1 根据业务需求规划表结构\t189

8.2 主键的确定\t195

8.3 表的拆分、合并及数据的规范和反规范化\t199

8.4 数据类型的选择\t199

8.5 表的分区\t203

8.6 表的压缩\t203

8.7 抽取数据\t205

8.7.1 利用SQL*PLUS的SPOOL功能\t205

8.7.2 利用UTL_FILE\t207

8.7.3 利用第三方工具\t207

8.8 转换数据\t207

8.8.1 数据的增删改\t208

8.8.2 数据汇总\t211

8.9 加载数据\t227

8.9.1 利用SQLLDR加载\t227

8.9.2 利用外部表加载\t229

8.9.3 利用数据库链接加载\t233

8.9.4 利用分区交换技术加载\t234

8.10 逻辑导入/导出数据\t240

第9章 数据审核\t242

9.1 审核的分类\t242

9.2 列审核设计\t243

9.2.1 直接使用SQL语句\t245

9.2.2 提高审核效率\t248

9.2.3 管理审核关系\t254

9.2.4 单个列的复杂审核\t257

9.3 行审核设计\t258

9.3.1 重码的审核\t259

9.3.2 直接使用SQL语句\t260

9.3.3 管理审核关系\t261

9.3.4 行间包含四则运算的审核思路\t266

9.3.5 更复杂的行间审核思路\t267

9.4 小结\t267

第10章 趣谈Oracle分析函数\t269

10.1 概述\t269

10.2 函数语法\t270

10.3 函数列表\t276

10.4 函数用法\t277

10.4.1 最常见的分析函数应用场景\t279

10.4.2 ROWS的具体用法\t280

10.4.3 RANGE的具体用法\t281

10.4.4 KEEP的用法\t283

10.5 函数功能详解\t284

10.5.1 统计函数\t284

10.5.2 排序函数\t285

10.5.3 数据分布函数\t287

10.5.4 统计分析函数\t289

10.6 分析函数在BI及统计上的应用\t290

10.6.1 现状分析\t290

10.6.2 发展分析\t297

10.7 自定义聚集函数\t298

10.7.1 自定义聚集函数接口简介\t298

10.7.2 应用场景一:字符串聚集\t299

10.7.3 应用场景二:指数移动平均线\t301

第11章 Oracle层次查询\t305

11.1 概述\t305

11.2 样例数据\t306

11.3 CONNECT BY和START WITH查询\t306

11.3.1 概述\t306

11.3.2 基本语法\t306

11.3.3 样例\t308

11.4 SYS_CONNECT_BY_PATH函数\t313

11.5 WMSYS.WM_CONCAT非公开函数\t314

第12章 号段选取应用\t316

12.1 问题的提出\t316

12.2 相关基础知识\t317

12.2.1 伪列rownum和level\t317

12.2.2 利用层次查询构造连续的数\t317

12.2.3 用lead和lag获得相邻行的字段值\t318

12.3 解决问题\t320

12.3.1 已知号码求号段\t320

12.3.2 根据号段求出包含的数\t324

12.3.3 求缺失的号\t326

12.3.4 求尚未使用的号段\t330

12.4 小结\t334

第13章 分析SQL执行计划的关注点\t335

13.1 返回行与逻辑读的比率\t335

13.2 聚合查询\t338

13.3 返回行的数量\t341

13.4 Oracle预测行准确与否\t342

13.5 Predicate Information\t346

13.6 动态采样\t348

13.7 谁是主要矛盾\t349

第14章 Oracle开发误区探索\t352

14.1 避免对列运算\t352

14.2 消除隐式转换\t354

14.3 关注空格\t354

14.4 存储过程与权限\t355

14.5 提防DDL提交事务\t357

14.6 Insert into 错误\t359

14.7 关于or\t360

14.8 sequence中的cache\t361

14.9 树形查询易错处\t364

14.10 小心保留字\t367

14.11 函数索引陷阱\t371

14.12 外连接陷阱\t374

14.13 标量子查询\t375

第15章 提升PL/SQL开发性能漫谈\t378

15.1 重视解析\t378

15.1.1 触发器尽量考虑内部代码过程封装\t378

15.1.2 避免动态SQL\t380

15.1.3 OLTP系统中尽量使用绑定变量\t382

15.2 关注调用\t384

15.2.1 减少对sysdate的调用\t384

15.2.2 避免对mod函数的调用\t385

15.2.3 设法减少表扫描次数\t386

15.2.4 避免SQL中的函数调用\t391

15.3 简洁为王\t395

15.3.1 尽量用简单SQL替代PL/SQL逻辑\t395

15.3.2 避免不必要的排序\t397

15.3.3 利用Oracle现有功能\t399

15.4 细致入微\t400

15.4.1 使用pls_integer类型\t400

15.4.2 避免数据类型转换\t400

15.4.3 IF的顺序有讲究\t402

15.4.4 设计开发对列是否为空慎重决定\t404

15.4.5 分布式应用开发不可不知的HINT(driving_site)\t407

第16章 管道函数的学习与实战应用\t410

16.1 管道函数编写要点\t410

16.2 功能描述及案例\t411

16.2.1 可直接用TABLE()操作符方式输出结果集\t411

16.2.2 结果集可作为表来使用,直接和其他表相关联\t411

16.2.3 实现实时跟踪\t412

16.3 管道函数注意点\t414

16.3.1 清楚管道函数只是表函数的一种\t414

16.3.2 管道函数与DML\t415

16.3.3 管道函数集合的限制\t416

16.3.4 与管道函数相关的异常NO_DATA_NEEDED\t417

第17章 巧用锁特性避免重复启动同一程序\t420

17.1 基本技巧介绍\t420

17.2 原理介绍\t422

17.3 程序代码\t423

17.4 测试\t426

17.5 需要注意的点\t427

第18章 11g R2 新特性之递归with编程精粹\t428

18.1 上下级关系\t429

18.2 构造数列\t435

18.3 排列组合问题\t441

18.4 沿路径计算\t457

18.5 国际SQL挑战赛\t473

第19章 不可能的任务?超越Oracle\t479

19.1 为何选择cube\t480

19.1.1 cube简介\t480

19.1.2 cube优势\t480

19.1.3 测试环境\t481

19.2 newkid的设计思路和优化步骤\t482

19.2.1 一次扫描求出16种分组\t482

19.2.2 一次扫描求出1种分组,并基于此再一次扫描求出其余分组\t484

19.2.3 一次扫描求出1种分组,并基于此再多次分层累计求出其余分组\t485

19.2.4 变量长度和类型的优化\t487

19.3 为何选择OCI\t488

19.3.1 汇总算法的翻译和改进\t488

19.3.2 输入和输出的实现和改进\t489

19.3.3 不要忽视物理存储对数据库操作的影响\t490

19.3.4 不成功的优化教训\t490

19.4 总结\t493

第20章 动态SQL扩展\t494

20.1 动态SQL用途和应用场景\t494

20.2 EXECUTE IMMEDIATE语法\t495

20.2.1 执行DDL、DCL语句\t495

20.2.2 构造通用SQL处理\t496

20.2.3 执行复杂业务逻辑查询\t498

20.2.4 绑定变量\t502

20.2.5 BULK COLLECT动态SQL\t505

20.3 使用DBMS_SQL包\t507

20.3.1 DBMS_SQL函数和过程说明\t507

20.3.2 DBMS_SQL执行步骤\t508

20.3.3 DBMS_SQL应用场景\t509

20.3.4 DBMS_SQL与EXECUTE IMMEDIATE比较\t509

后记\t511

内容摘要:

Oracle数据库是目前市场占有率最高的商业数据库,功能非常强大,随着Oracle管理工具的智能化,如Oracle EM提供了强大的管理和调优功能,Oracle DBA的管理工作逐渐趋于简单化。正因为如此,当前国内Oracle开发人员的岗位需求大幅度增加,投身Oracle开发的人数也日益增多。一个好的Oracle开发人员不仅要知道一些基本语法和常见用法,还需要知道何时用、如何用、怎么避免相关误区、写出高质量的代码。本书面向有Oracle使用经验或有其他数据库使用经验的人,重点讲述利用好Oracle的特色功能进行高效开发的思路和技巧,帮助读者快速掌握中高级Oracle开发技术。本书主要覆盖Oracle开发必备的重要知识点:数据库编程规范、Oracle开发常用工具及使用、MERGE方法、神秘的NULL和讨厌的CHAR、扩展GROUP BY、Oracle自动类型转换、Oracle分析函数、Oracle层次查询、11g R2新特性之递归WITH编程、动态SQL扩展。此外还有大量案例:Where In List问题解析,数据库设计和大数据量处理、数据审核、号段选取应用、分析SQL执行计划的关注点、Oracle开发误区探索、提升PL/SQL开发性能漫谈、管道函数的学习与实战应用、巧用锁特性避免重复启动同一程序、不可能的任务?超越Oracle等。本书作者均有多年Oracle开发管理实战经验,他们期望以自己的经验和教训,分享分析和解决问题的方法,探讨如何用相关的技术去解决特定的需求。希望读者在看完本书后,能受到良好的启迪,进而能极大地提升自己在Oracle数据库开发方面的能力!

书籍规格:

书籍详细信息
书名剑破冰山站内查询相似图书
丛书名ITPUB技术丛书
9787121120756
如需购买下载《剑破冰山》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位电子工业出版社
版次1版印次1
定价(元)69.0语种简体中文
尺寸26 × 18装帧平装
页数 524 印数

书籍信息归属:

剑破冰山是电子工业出版社于2010.12出版的中图分类号为 TP311.138 的主题关于 关系数据库-数据库管理系统,Oracle 的书籍。