《精通Oracle SQL 第2版》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)莫顿著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2014
  • ISBN:9787115351661
  • 页数:530 页
图书介绍:本书作者以精炼、风趣的语言揭开了Oracle SQL高级编程的神秘面纱。所涵盖的内容涉及SQL核心、SQL执行、分析函数、联结、测试与质量保证等,并提供大量实用性建议,且总结出方方面面的“技巧”帮助读者在阅读过程中快速消化所看内容。

第1章 SQL核心 1

1.1 SQL语言 1

1.2数据库的接口 2

1.3 SQLPlus回顾 3

1.3.1连接到数据库 3

1.3.2配置SQLPlus环境 4

1.3.3执行命令 6

1.4 5个核心的SQL语句 8

1.5 SELECT语句 8

1.5.1 FROM子句 10

1.5.2 WHERE子句 11

1.5.3 GROUP BY子句 11

1.5.4 HAVING子句 12

1.5.5 SELECT列表 13

1.5.6 ORDER BY子句 13

1.6 INSERT语句 14

1.6.1单表插入 14

1.6.2多表插入 15

1.7 UPDATE语句 17

1.8 DELETE语句 20

1.9 MERGE语句 22

1.10小结 24

第2章 SQL执行 25

2.1 Oracle架构基础 25

2.2 SGA共享池 26

2.3库高速缓存 27

2.4完全相同的语句 28

2.5 SGA缓冲区缓存 31

2.6查询转换 34

2.6.1查询块 35

2.6.2视图合并 37

2.6.3子查询解嵌套 41

2.6.4联结消除 43

2.6.5排序消除 45

2.6.6谓词推进 46

2.6.7使用物化视图进行查询重写 48

2.7确定执行计划 50

2.8执行计划并取得数据行 54

2.9 SQL执行——总览 56

2.10小结 57

第3章 访问和联结方法 58

3.1全扫描访问方法 58

3.1.1如何选择全扫描操作 59

3.1.2全扫描与舍弃 62

3.1.3全扫描与多块读取 63

3.1.4全扫描与高水位线 63

3.2索引扫描访问方法 68

3.2.1索引结构 69

3.2.2索引扫描类型 71

3.2.3索引唯一扫描 75

3.2.4索引范围扫描 76

3.2.5索引全扫描 77

3.2.6索引跳跃扫描 80

3.2.7索引快速全扫描 81

3.3联结方法 82

3.3.1嵌套循环联结 83

3.3.2排序-合并联结 85

3.3.3散列联结 86

3.3.4笛卡儿联结 89

3.3.5外联结 90

3.4小结 95

第4章 SQL是关于集合的 96

4.1以面向集合的思维方式来思考 96

4.1.1从面向过程转变为基于集合的思维方式 97

4.1.2面向过程与基于集合的思维方式:例子 100

4.2集合运算 102

4.2.1 UNION和UNION ALL 103

4.2.2 MINUS 106

4.2.3INTERSECT 107

4.3集合与空值 108

4.3.1空值与非直观结果 108

4.3.2空值与集合运算 111

4.3.3空值与GROUP BY和ORDER BY 112

4.3.4空值与聚合函数 114

4.4小结 114

第5章 提出问题 115

5.1问出好的问题 115

5.2提问的目的 116

5.3问题的种类 116

5.4问题的问题 118

5.5数据的问题 120

5.6建立逻辑表达式 125

5.7小结 130

第6章 SQL执行计划 131

6.1解释计划 131

6.1.1使用解释计划 131

6.1.2 PLAN TABLE 133

6.1.3分解计划 135

6.1.4导致解释计划未达目的的原因 136

6.1.5阅读计划 139

6.1.6访问和筛选谓语 140

6.1.7使计划便于阅读 141

6.2执行计划 142

6.2.1查看最近生成的SQL语句 142

6.2.2查看相关执行计划 142

6.2.3收集执行计划统计信息 144

6.2.4标识SQL语句以便以后取回计划 146

6.2.5深入理解DBMS XPLAN 149

6.2.6使用SQL监控报告 154

6.2.7使用计划信息解决问题 157

6.3小结 166

第7章 高级分组 167

7.1基本的GROUP BY用法 167

7.2 HAVING子句 170

7.3 GROUP BY的“新”功能 172

7.4 GROUP BY的CUBE扩展 172

7.5 CUBE的实际应用 178

7.6用GROUPING()函数排除空值 184

7.7用GROUPING()扩展报告 185

7.8用GROUPING_ID()扩展报告 186

7.9 GROUPING SETS与ROLLUP() 190

7.10 GROUP BY局限性 192

7.11小结 195

第8章 分析函数 196

8.1概览 196

8.2示例数据 197

8.3分析函数剖析 197

8.4函数列表 198

8.5聚合函数 199

8.5.1跨越整个分区的聚合函数 200

8.5.2细粒度窗口声明 201

8.5.3默认窗口声明 201

8.6 lead和lag 201

8.6.1语法和排序 202

8.6.2例1:从前一行中返回一个值 202

8.6.3理解数据行的位移 203

8.6.4例2:从下一行中返回一个值 203

8.7 first_value和last_value 204

8.7.1例子:使用first_value计算最大值 205

8.7.2例子:使用last_value计算最小值 206

8.8其他分析函数 206

8.8.1 nth_value 206

8.8.2 rank 208

8.8.3 dense_rank 209

8.8.4 row_number 210

8.8.5 ratio_to_report 211

8.8.6 percent-rank 212

8.8.7 percentile_cont 213

8.8.8 percentile_disc 215

8.8.9 NTILE 216

8.8.10 stddev 217

8.8.11 listagg 218

8.9性能调优 219

8.9.1执行计划 220

8.9.2谓词 220

8.9.3索引 221

8.10高级话题 222

8.10.1动态SQL 222

8.10.2嵌套分析函数 224

8.10.3并行 224

8.10.4 PGA大小 225

8.11组织行为 225

8.12小结 226

第9章 MODEL子句 227

9.1电子表格 228

9.2使用MODEL子句实现跨行引用 228

9.2.1示例数据 228

9.2.2剖析MODEL子句 229

9.2.3规则 230

9.3位置和符号引用 231

9.3.1位置标记 231

9.3.2符号标记 232

9.3.3 FOR循环 233

9.4返回更新后的行 234

9.5求解顺序 235

9.5.1行求解顺序 235

9.5.2规则求解顺序 237

9.6聚合 239

9.7迭代 240

9.7.1示例 240

9.7.2 PRESENTV与空值 241

9.8查找表 242

9.9空值 244

9.10使用MODEL子句进行性能调优 245

9.10.1执行计划 245

9.10.2谓词推进 248

9.10.3物化视图 250

9.10.4并行 251

9.10.5 MODEL子句执行中的分区 252

9.10.6索引 253

9.11子查询因子化 254

9.12小结 255

第10章 子查询因子化 256

10.1标准用法 256

10.2用WITH定义PL/SQL函数 259

10.3 SQL优化 261

10.3.1测试执行计划 261

10.3.2测试查询改变的影响 265

10.3.3寻找其他优化机会 268

10.3.4将子查询因子化应用到PL/SQL中 272

10.4递归子查询 275

10.4.1 CONNECT BY示例 275

10.4.2 RSF示例 277

10.4.3 RSF的限制条件 278

10.4.4与C ONNECTBY的不同点 278

10.5复制CONNECT BY的功能 279

10.5.1 LEVEL伪列 280

10.5.2 SYS_CONNECT_BY_PATH函数 281

10.5.3 CONNECT_BY_ROOT运算符 283

10.5.4 CONNECT_BY_ISCYCLE伪列和NOCYCLE参数 285

10.5.5 CONNECT_BY_ISLEAF伪列 288

10.6小结 292

第11章 半联结和反联结 294

11.1半联结 294

11.2半联结执行计划 302

11.3控制半联结执行计划 307

11.3.1使用提示控制半联结执行计划 307

11.3.2在实例级控制半联结执行计划 309

11.4半联结限制条件 311

11.5半联结必要条件 313

11.6反联结 314

11.7反联结执行计划 318

11.8控制反联结执行计划 327

11.8.1使用提示控制反联结执行计划 327

11.8.2在实例级控制反联结执行计划 328

11.9反联结限制条件 331

11.10反联结必要条件 334

11.11小结 334

第12章 索引 335

12.1理解索引 336

12.1.1什么时候使用索引 336

12.1.2列的选择 338

12.1.3空值问题 339

12.2索引结构类型 340

12.2.1 B-树索引 340

12.2.2位图索引 341

12.2.3索引组织表 342

12.3分区索引 344

12.3.1局部索引 344

12.3.2全局索引 346

12.3.3散列分区与范围分区 347

12.4与应用特点相匹配的解决方案 350

12.4.1压缩索引 350

12.4.2基于函数的索引 352

12.4.3反转键索引 354

12.4.4降序索引 355

12.5管理问题的解决方案 356

12.5.1不可见索引 356

12.5.2虚拟索引 358

12.5.3位图联结索引 358

12.6小结 360

第13章SELECT以外的内容 361

13.1INSERT 361

13.1.1直接路径插入 361

13.1.2多表插入 363

13.1.3条件插入 365

13.1.4 DML错误日志 365

13.2 UPDATE 371

13.2.1 CTAS与UPDATE的差别 371

13.2.2 INSERT APPEND与UPDATE的差别 374

13.3 DELETE 377

13.4 MERGE 380

13.4.1语法和用法 380

13.4.2性能比较 384

13.5小结 385

第14章 事务处理 387

14.1什么是事务 387

14.2事务的ACID属性 388

14.3事务隔离级别 389

14.4多版本读一致性 391

14.5事务控制语句 392

14.5.1 Commit(提交) 392

14.5.2 Savepoint(保存点) 392

14.5.3 Rollback(回滚) 392

14.5.4 Set Transaction(设置事务) 392

14.5.5 Set Constraints(设置约束) 393

14.6将运算分组为事务 393

14.7订单录入模式 394

14.8活动事务 400

14.9使用保存点 401

14.10序列化事务 404

14.11隔离事务 407

14.12自治事务 410

14.13小结 414

第15章 测试与质量保证 415

15.1测试用例 416

15.2测试方法 417

15.2.1单元测试 418

15.2.2回归测试 421

15.2.3模式修改 422

15.2.4重复单元测试 425

15.3执行计划比较 426

15.4性能测量 431

15.4.1在代码中加入性能测量 432

15.4.2性能测试 436

15.5破坏性测试 437

15.6使用性能测量进行系统检修 439

15.7小结 441

第16章 计划稳定性 443

16.1计划不稳定性:理解这个问题 443

16.1.1统计信息的变化 444

16.1.2运行环境的改变 446

16.1.3 SQL语句的改变 448

16.1.4绑定变量窥视 448

16.1.5自适应游标共享 451

16.2统计信息反馈 455

16.3识别执行计划的不稳定性 459

16.3.1抓取当前运行查询的数据 460

16.3.2查看语句的性能历史 461

16.3.3按照执行计划聚合统计信息 462

16.3.4寻找执行计划的统计方差 463

16.3.5在一个时间点附近检查偏差 464

16.4小结 465

第17章 计划控制 466

17.1执行计划控制:解决问题 466

17.1.1调整查询结构 467

17.1.2适当使用常量 467

17.1.3给优化器一些提示 467

17.2执行计划控制:不能直接访问代码 475

17.2.1选项1:改变统计信息 475

17.2.2选项2:改变数据库参数 477

17.2.3选项3:增加或移除访问路径 478

17.2.4选项4:应用基于提示的执行计划控制机制 478

17.2.5大纲 479

17.2.6 SQL概要文件 482

17.2.7 SQL执行计划基线 498

17.2.8 SQL补丁 507

17.2.9基于提示的计划控制机理小结 509

17.3小结 509

第18章 其他SQL结构 510

18.1条件逻辑结构 510

18.1.1 DECODE 510

18.1.2 CASE 511

18.1.3 NVL、NVL2和COALESCE 515

18.1.4 NULLIF 517

18.2 PIVOT/UNPIVOT查询 518

18.2.1 PIVOT 518

18.2.2 UNPIVOT 523

18.3生成测试数据的SQL 526

18.3.1想要得到什么样的数据 526

18.3.2 CONNECTBY 527

18.3.3 MODEL子句 529

18.3.4递归WITH子句 529

18.3.5数据生成小结 530

18.4小结 530