《Oracle SQL高级编程》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)莫顿等著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2011
  • ISBN:9787115266149
  • 页数:502 页
图书介绍:本书作者以精炼、风趣的语言揭开了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子句 9

1.5.2 WHERE子句 11

1.5.3 GROUP BY子句 11

1.5.4HAVING子句 12

1.5.5 SELECT列表 12

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-共享池 27

2.3库高速缓存 28

2.4完全相同的语句 29

2.5 SGA-缓冲区缓存 32

2.6查询转换 35

2.7视图合并 36

2.8子查询解嵌套 39

2.9谓语前推 42

2.10使用物化视图进行查询重写 44

2.11确定执行计划 46

2.12执行计划并取得数据行 50

2.13 SQL执行——总览 52

2.14小结 53

第3章 访问和联结方法 55

3.1全扫描访问方法 55

3.1.1如何选择全扫描操作 56

3.1.2全扫描与舍弃 59

3.1.3全扫描与多块读取 60

3.1.4全扫描与高水位线 60

3.2索引扫描访问方法 65

3.2.1索引结构 66

3.2.2索引扫描类型 68

3.2.3索引唯一扫描 71

3.2.4索引范围扫描 72

3.2.5索引全扫描 74

3.2.6索引跳跃扫描 77

3.2.7索引快速全扫描 79

3.3联结方法 80

3.3.1嵌套循环联结 81

3.3.2排序-合并联结 83

3.3.3散列联结 84

3.3.4笛卡儿联结 87

3.3.5外联结 88

3.4小结 94

第4章SQL是关于集合的 95

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

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

4.1.2面向过程vs.基于集合的思维方式:一个例子 100

4.2集合运算 102

4.2.1 UNION和UNION ALL 103

4.2.2 MINUS 106

4.2.3 INTERSECT 107

4.3集合与空值 108

4.3.1空值与非直观结果 108

4.3.2集合运算中的空值行为 110

4.3.3空值与GROUP BY和ORDER BY 112

4.3.4空位与聚合函数 114

4.4小结 114

第5章 关于问题 116

5.1问出好的问题 116

5.2提问的目的 117

5.3问题的种类 117

5.4关于问题的问题 119

5.5关于数据的问题 121

5.6建立逻辑表达式 126

5.7小结 136

第6章SQL执行计划 137

6.1解释计划 137

6.1.1使用解释计划 137

6.1.2理解解释计划可能达不到目的的方式 143

6.1.3阅读计划 146

6.2执行计划 148

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

6.2.2查看相关执行计划 149

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

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

6.2.5深入理解DBMS_XPLAN的细节 156

6.2.6使用计划信息来解决问题 161

6.3小结 169

第7章 高级分组 170

7.1基本的GROUP BY用法 171

7.2 HAVING子句 174

7.3 GROUP BY的“新”功能 175

7.4 GROUP BY的CUBE扩展 175

7.5 CUBE的实际应用 179

7.6通过GROUPING()函数排除空值 185

7.7用GROUPING()来扩展报告 186

7.8使用GROUPING_ ID()来扩展报告 187

7.9 GROUPING SETS与ROLLUP() 191

7.10 GROUP BY局限性 193

7.11小结 196

第8章 分析函数 197

8.1示例数据 197

8.2分析函数剖析 198

8.3函数列表 199

8.4聚合函数 200

8.4.1跨越整个分区的聚合函数 201

8.4.2细粒度窗口声明 201

8.4.3默认窗口声明 202

8.5 Lead和Lag 202

8.5.1语法和排序 202

8.5.2例1:从前一行中返回一个值 203

8.5.3理解数据行的位移 204

8.5.4例2:从下一行中返回一个值 204

8.6 First_ value和Last_value 205

8.6.1例子:使用First_ value来计算最大值 206

8.6.2例子:使用Last_ value来计算最小值 207

8.7其他分析函数 207

8.7.1 Nth value (11gR2) 207

8.7.2 Rank 209

8.7.3 Dense rank 210

8.7.4 Row number 211

8.7.5 Ratio_to_report 211

8.7.6 Percent rank 212

8.7.7 Percentile cont 213

8.7.8 Percentile disc 215

8.7.9 NTI LE 215

8.7.10 Stddev 216

8.7.11 Li stagg 217

8.8性能调优 218

8.8.1执行计划 218

8.8.2谓语 219

8.8.3索引 220

8.9高级话题 221

8.9.1动态SQL 221

8.9.2嵌套分析函数 222

8.9.3并行 223

8.9.4 PGA大小 224

8.10组织行为 224

8.11小结 224

第9章Model子句 225

9.1电子表格 225

9.2通过Model子句进行跨行引用 226

9.2.1示例数据 226

9.2.2剖析Model子句 227

9.2.3规则 228

9.3位置和符号引用 229

9.3.1位置标记 229

9.3.2符号标记 230

9.3.3 FOR循环 231

9.4返回更新后的行 232

9.5求解顺序 233

9.5.1行求解顺序 233

9.5.2规则求解顺序 235

9.6聚合 237

9.7迭代 237

9.7.1一个例子 238

9.7.2 PRESENTV与空值 239

9.8查找表 240

9.9空值 242

9.10使用Model子句进行性能调优 243

9.10.1执行计划 243

9.10.2谓语前推 246

9.10.3物化视图 247

9.10.4并行 249

9.10.5 Model子句执行中的分区 250

9.10.6索引 251

9.11子查询因子化 252

9.12小结 253

第10章 子查询因子化 254

10.1标准用法 254

10.2 SQL优化 257

10.2.1测试执行计划 257

10.2.2跨多个执行的测试 260

10.2.3测试查询改变的影响 263

10.2.4寻找其他优化机会 266

10.2.5将子查询因子化应用到PL/SQL中 270

10.3递归子查询 273

10.3.1一个CONNECT BY的例子 274

10.3.2使用RSF的例子 275

10.3.3 RSF的限制条件 276

10.3.4与CONNECT BY的不同点 276

10.4复制CONNECT BY的功能 277

10.4.1 LEVEL伪列 278

10.4.2 SYS_ONNECT_BY_PATH函数 279

10.4.3 CONNECT_BY_ROOT运算符 281

10.4.4 CONNECT_BY_ISCYCLE伪列和NOCYCLE参数 284

10.4.5 CONNECT_BY_ISLEAF伪列 287

10.5小结 291

第11章 半联结和反联结 292

11.1半联结 292

11.2半联结执行计划 300

11.3控制半联结执行计划 305

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

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

11.4半联结限制条件 310

11.5半联结必要条件 312

11.6反联结 312

11.7反联结执行计划 317

11.8控制反联结执行计划 326

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

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

11.9反联结限制条件 330

11.10反联结必要条件 333

11.11小结 333

第12章 索引 334

12.1理解索引 335

12.1.1什么时候使用索引 335

12.1.2列的选择 337

12.1.3空值问题 338

12.2索引结构类型 339

12.2.1 B-树索引 339

12.2.2位图索引 340

12.2.3索引组织表 341

12.3分区索引 343

12.3.1局部索引 343

12.3.2全局索引 345

12.3.3散列分区与范围分区 346

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

12.4.1压缩索引 348

12.4.2基于函数的索引 350

12.4.3反转键索引 353

12.4.4降序索引 354

12.5管理问题的解决方案 355

12.5.1不可见索引 355

12.5.2虚拟索引 356

12.5.3位图联结索引 357

12.6小结 359

第13章SELECT以外的内容 360

13.1INSERT 360

13.1.1直接路径插入 360

13.1.2多表插入 363

13.1.3条件插入 364

13.1.4 DML错误日志 364

13.2 UPDATE 371

13.3 DELETE 376

13.4 MERGE 380

13.4.1语法和用法 380

13.4.2性能比较 383

13.5小结 385

第14章 事务处理 386

14.1什么是事务 386

14.2事务的ACID属性 387

14.3事务隔离级别 388

14.4多版本读一致性 390

14.5事务控制语句 391

14.5.1 Commit(提交) 391

14.5.2 Savepoint(保存点) 391

14.5.3 Rollback(回滚) 391

14.5.4 Set Transaction(设置事务) 391

14.5.5 Set Constraints(设置约束) 392

14.6将运算分组为事务 392

14.7订单录入模式 393

14.8活动事务 399

14.9使用保存点 400

14.10序列化事务 403

14.11隔离事务 406

14.12自治事务 409

14.13小结 413

第15章 测试与质量保证 415

15.1测试用例 416

15.2测试方法 417

15.3单元测试 418

15.4回归测试 422

15.5模式修改 422

15.6重复单元测试 425

15.7执行计划比较 426

15.8性能测量 432

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

15.10性能测试 436

15.11破坏性测试 437

15.12通过性能测量进行系统检修 439

15.13小结 442

第16章 计划稳定性与控制 443

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

16.1.1统计信息的变化 444

16.1.2运行环境的改变 446

16.1.3 SQL语句的改变 447

16.1.4绑定变量窥视 448

16.2识别执行计划的不稳定性 450

16.2.1抓取当前所运行查询的数据 451

16.2.2查看一条语句的性能历史 452

16.2.3按照执行计划聚合统计信息 454

16.2.4寻找执行计划的统计方差 454

16.2.5在一个时间点附近检查偏差 456

16.3执行计划控制:解决问题 458

16.3.1调整查询结构 459

16.3.2适当使用常量 459

16.3.3给优化器一些提示 459

16.4执行计划控制:不能直接访问代码 466

16.4.1选项1:改变统计信息 467

16.4.2选项2:改变数据库参数 469

16.4.3选项3:增加或移除访问路径 469

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

16.4.5大纲 470

16.4.6 SQL概要文件 481

16.4.7 SQL执行计划基线 496

16.4.8基于提示的执行计划控制机制总结 502

16.5结论 502