一:下载途径

二:图书图样

三:目录

第1章 SQL核心 

1.1 SQL语言 

1.2 数据库的接口 

1.3 SQL*Plus回顾 

1.3.1 连接到数据库 

1.3.2 配置SQL*Plus环境 

1.3.3 执行命令 

1.4 5个核心的SQL语句 

1.5 SELECT语句 

1.5.1 FROM子句 

1.5.2 WHERE子句 

1.5.3 GROUP BY子句 

1.5.4 HAVING子句 

1.5.5 SELECT列表 

1.5.6 ORDER BY子句 

1.6 INSERT语句 

1.6.1 单表插入 

1.6.2 多表插入 

1.7 UPDATE语句 

1.8 DELETE语句 

1.9 MERGE语句 

1.10 小结 

第2章 SQL执行 

2.1 Oracle架构基础 

2.2 SGA共享池 

2.3 库高速缓存 

2.4 完全相同的语句 

2.5 SGA缓冲区缓存 

2.6 查询转换 

2.6.1 查询块 

2.6.2 视图合并 

2.6.3 子查询解嵌套 

2.6.4 联结消除 

2.6.5 排序消除 

2.6.6 谓词推进 

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

2.7 确定执行计划 

2.8 执行计划并取得数据行 

2.9 SQL执行——总览 

2.10 小结 

第3章 访问和联结方法 

3.1 全扫描访问方法 

3.1.1 如何选择全扫描操作 

3.1.2 全扫描与舍弃 

3.1.3 全扫描与多块读取 

3.1.4 全扫描与高水位线 

3.2 索引扫描访问方法 

3.2.1 索引结构 

3.2.2 索引扫描类型 

3.2.3 索引唯一扫描 

3.2.4 索引范围扫描 

3.2.5 索引全扫描 

3.2.6 索引跳跃扫描 

3.2.7 索引快速全扫描 

3.3 联结方法 

3.3.1 嵌套循环联结 

3.3.2 排序—合并联结 

3.3.3 散列联结 

3.3.4 笛卡儿联结 

3.3.5 外联结 

3.4 小结 

第4章 SQL是关于集合的 

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

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

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

4.2 集合运算 

4.2.1 UNION和UNION ALL 

4.2.2 MINUS 

4.2.3 INTERSECT 

4.3 集合与空值 

4.3.1 空值与非直观结果 

4.3.2 空值与集合运算 

4.3.3 空值与GROUP BY和ORDER BY 

4.3.4 空值与聚合函数 

4.4 小结 

第5章 提出问题 

5.1 问出好的问题 

5.2 提问的目的 

5.3 问题的种类 

5.4 问题的问题 

5.5 数据的问题 

5.6 建立逻辑表达式 

5.7 小结 

第6章 SQL执行计划 

6.1 解释计划 

6.1.1 使用解释计划 

6.1.2 PLAN_TABLE 

6.1.3 分解计划 

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

6.1.5 阅读计划 

6.1.6 访问和筛选谓语 

6.1.7 使计划便于阅读 

6.2 执行计划 

6.2.1 查看最近生成的SQL语句 

6.2.2 查看相关执行计划 

6.2.3 收集执行计划统计信息 

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

6.2.5 深入理解DBMS_XPLAN 

6.2.6 使用SQL监控报告 

6.2.7 使用计划信息解决问题 

6.3 小结 

第7章 高级分组 

7.1 基本的GROUP BY用法 

7.2 HAVING子句 

7.3 GROUP BY的“新”功能 

7.4 GROUP BY的CUBE扩展 

7.5 CUBE的实际应用 

7.6 用GROUPING()函数排除空值 

7.7 用GROUPING()扩展报告 

7.8 用GROUPING_ID()扩展报告 

7.9 GROUPING SETS与ROLLUP() 

7.10 GROUP BY局限性 

7.11 小结 

第8章 分析函数 

8.1 概览 

8.2 示例数据 

8.3 分析函数剖析 

8.4 函数列表 

8.5 聚合函数 

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

8.5.2 细粒度窗口声明 

8.5.3 默认窗口声明 

8.6 lead和lag 

8.6.1 语法和排序 

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

8.6.3 理解数据行的位移 

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

8.7 first_value和last_value 

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

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

8.8 其他分析函数 

8.8.1 nth_value 

8.8.2 rank 

8.8.3 dense_rank 

8.8.4 row_number 

8.8.5 ratio_to_report 

8.8.6 percent_rank 

8.8.7 percentile_cont 

8.8.8 percentile_disc 

8.8.9 NTILE 

8.8.10 stddev 

8.8.11 listagg 

8.9 性能调优 

8.9.1 执行计划 

8.9.2 谓词 

8.9.3 索引 

8.10 高级话题 

8.10.1 动态SQL 

8.10.2 嵌套分析函数 

8.10.3 并行 

8.10.4 PGA大小 

8.11 组织行为 

8.12 小结 

第9章 MODEL子句 

9.1 电子表格 

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

9.2.1 示例数据 

9.2.2 剖析MODEL子句 

9.2.3 规则 

9.3 位置和符号引用 

9.3.1 位置标记 

9.3.2 符号标记 

9.3.3 FOR循环 

9.4 返回更新后的行 

9.5 求解顺序 

9.5.1 行求解顺序 

9.5.2 规则求解顺序 

9.6 聚合 

9.7 迭代 

9.7.1 示例 

9.7.2 PRESENTV与空值 

9.8 查找表 

9.9 空值 

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

9.10.1 执行计划 

9.10.2 谓词推进 

9.10.3 物化视图 

9.10.4 并行 

9.10.5 MODEL子句执行中的分区 

9.10.6 索引 

9.11 子查询因子化 

9.12 小结 

第10章 子查询因子化 

10.1 标准用法 

10.2 用WITH定义PL/SQL函数 

10.3 SQL优化 

10.3.1 测试执行计划 

10.3.2 测试查询改变的影响 

10.3.3 寻找其他优化机会 

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

10.4 递归子查询 

10.4.1 CONNECT BY示例 

10.4.2 RSF示例 

10.4.3 RSF的限制条件 

10.4.4 与CONNECT BY的不同点 

10.5 复制CONNECT BY的功能 

10.5.1 LEVEL伪列 

10.5.2 SYS_CONNECT_BY_PATH函数 

10.5.3 CONNECT_BY_ROOT运算符 

10.5.4 CONNECT_BY_ISCYCLE伪列和NOCYCLE参数 

10.5.5 CONNECT_BY_ISLEAF伪列 

10.6 小结 

第11章 半联结和反联结 

11.1 半联结 

11.2 半联结执行计划 

11.3 控制半联结执行计划 

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

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

11.4 半联结限制条件 

11.5 半联结必要条件 

11.6 反联结 

11.7 反联结执行计划 

11.8 控制反联结执行计划 

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

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

11.9 反联结限制条件 

11.10 反联结必要条件 

11.11 小结 

第12章 索引 

12.1 理解索引 

12.1.1 什么时候使用索引 

12.1.2 列的选择 

12.1.3 空值问题 

12.2 索引结构类型 

12.2.1 B-树索引 

12.2.2 位图索引 

12.2.3 索引组织表 

12.3 分区索引 

12.3.1 局部索引 

12.3.2 全局索引 

12.3.3 散列分区与范围分区 

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

12.4.1 压缩索引 

12.4.2 基于函数的索引 

12.4.3 反转键索引 

12.4.4 降序索引 

12.5 管理问题的解决方案 

12.5.1 不可见索引 

12.5.2 虚拟索引 

12.5.3 位图联结索引 

12.6 小结 

第13章 SELECT以外的内容 

13.1 INSERT 

13.1.1 直接路径插入 

13.1.2 多表插入 

13.1.3 条件插入 

13.1.4 DML错误日志 

13.2 UPDATE 

13.2.1 CTAS与UPDATE的差别 

13.2.2 INSERT APPEND与UPDATE的差别 

13.3 DELETE 

13.4 MERGE 

13.4.1 语法和用法 

13.4.2 性能比较 

13.5 小结 

第14章 事务处理 

14.1 什么是事务 

14.2 事务的ACID属性 

14.3 事务隔离级别 

14.4 多版本读一致性 

14.5 事务控制语句 

14.5.1 Commit(提交) 

14.5.2 Savepoint(保存点) 

14.5.3 Rollback(回滚) 

14.5.4 Set Transaction(设置事务) 

14.5.5 Set Constraints(设置约束) 

14.6 将运算分组为事务 

14.7 订单录入模式 

14.8 活动事务 

14.9 使用保存点 

14.10 序列化事务 

14.11 隔离事务 

14.12 自治事务 

14.13 小结 

第15章 测试与质量保证 

15.1 测试用例 

15.2 测试方法 

15.2.1 单元测试 

15.2.2 回归测试 

15.2.3 模式修改 

15.2.4 重复单元测试 

15.3 执行计划比较 

15.4 性能测量 

15.4.1 在代码中加入性能测量 

15.4.2 性能测试 

15.5 破坏性测试 

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

15.7 小结 

第16章 计划稳定性 

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

16.1.1 统计信息的变化 

16.1.2 运行环境的改变 

16.1.3 SQL语句的改变 

16.1.4 绑定变量窥视 

16.1.5 自适应游标共享 

16.2 统计信息反馈 

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

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

16.3.2 查看语句的性能历史 

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

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

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

16.4 小结 

第17章 计划控制 

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

17.1.1 调整查询结构 

17.1.2 适当使用常量 

17.1.3 给优化器一些提示 

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

17.2.1 选项1:改变统计信息 

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

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

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

17.2.5 大纲 

17.2.6 SQL概要文件 

17.2.7 SQL执行计划基线 

17.2.8 SQL补丁 

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

17.3 小结 

第18章 其他SQL结构 

18.1 条件逻辑结构 

18.1.1 DECODE 

18.1.2 CASE 

18.1.3 NVL、NVL2和COALESCE 

18.1.4 NULLIF 

18.2 PIVOT/UNPIVOT查询 

18.2.1 PIVOT 

18.2.2 UNPIVOT 

18.3 生成测试数据的SQL 

18.3.1 想要得到什么样的数据 

18.3.2 CONNECT BY 

18.3.3 MODEL子句 

18.3.4 递归WITH子句 

18.3.5 数据生成小结 

18.4 小结

《精通Oracle SQL(第2版)》PDF的更多相关文章

  1. 【实战Java高并发程序设计 7】让线程之间互相帮助--SynchronousQueue的实现

    [实战Java高并发程序设计 1]Java中的指针:Unsafe类 [实战Java高并发程序设计 2]无锁的对象引用:AtomicReference [实战Java高并发程序设计 3]带有时间戳的对象 ...

  2. 【实战Java高并发程序设计6】挑战无锁算法:无锁的Vector实现

    [实战Java高并发程序设计 1]Java中的指针:Unsafe类 [实战Java高并发程序设计 2]无锁的对象引用:AtomicReference [实战Java高并发程序设计 3]带有时间戳的对象 ...

  3. 【实战Java高并发程序设计 5】让普通变量也享受原子操作

    [实战Java高并发程序设计 1]Java中的指针:Unsafe类 [实战Java高并发程序设计 2]无锁的对象引用:AtomicReference [实战Java高并发程序设计 3]带有时间戳的对象 ...

  4. 【实战Java高并发程序设计 4】数组也能无锁:AtomicIntegerArray

    除了提供基本数据类型外,JDK还为我们准备了数组等复合结构.当前可用的原子数组有:AtomicIntegerArray.AtomicLongArray和AtomicReferenceArray,分别表 ...

  5. 【实战Java高并发程序设计 3】带有时间戳的对象引用:AtomicStampedReference

    [实战Java高并发程序设计 1]Java中的指针:Unsafe类 [实战Java高并发程序设计 2]无锁的对象引用:AtomicReference AtomicReference无法解决上述问题的根 ...

  6. 【实战Java高并发程序设计 1】Java中的指针:Unsafe类

    是<实战Java高并发程序设计>第4章的几点. 如果你对技术有着不折不挠的追求,应该还会特别在意incrementAndGet() 方法中compareAndSet()的实现.现在,就让我 ...

  7. 《实战java高并发程序设计》源码整理及读书笔记

    日常啰嗦 不要被标题吓到,虽然书籍是<实战java高并发程序设计>,但是这篇文章不会讲高并发.线程安全.锁啊这些比较恼人的知识点,甚至都不会谈相关的技术,只是写一写本人的一点读书感受,顺便 ...

  8. 《实战Java高并发程序设计》读书笔记

    文章目录 第二章 Java并行程序基础 2.1 线程的基本操作 2.1.1 线程中断 2.1.2 等待(wait)和通知(notify) 2.1.3 等待线程结束(join)和谦让(yield) 2. ...

  9. 《实战Java高并发程序设计》读书笔记三

    第三章 JDK并发包 1.同步控制 重入锁:重入锁使用java.util.concurrent.locks.ReentrantLock类来实现,这种锁可以反复使用所以叫重入锁. 重入锁和synchro ...

  10. 《实战Java高并发程序设计》读书笔记二

    第二章  Java并行程序基础 1.线程的基本操作 线程:进程是线程的容器,线程是轻量级进程,是程序执行的最小单位,使用多线程而不用多进程去进行并发程序设计是因为线程间的切换和调度的成本远远的小于进程 ...

随机推荐

  1. Redis Fun使用

    using Newtonsoft.Json; using StackExchange.Redis; using System; using System.Configuration; using Sy ...

  2. Java基础_0305:简单Java类

    简单Java类 简单Java类是一种在实际开发之中使用最多的类的定义形式,在简单Java类中包含有类.对象.构造方法.private封装等核心概念的使用,而对于简单Java类首先给出如下的基本开发要求 ...

  3. 谈谈==和equals

    == 先看Java /** * Author:Mr.X * Date:2017/10/8 23:17 * Description: * * @==判断两个内存地址是否相同 * @基础类型有(char, ...

  4. STL之permutation/ equal_range/ binary_range学习

    1,is_permutation 函数,判断其中一个序列是不是另外一个序列的全排列. 包括四个参数,前两个是第一个数组需要判断的起始位置和终止位置.后两个是第二个数组需要判断的起始位置和终止位置. # ...

  5. Django学习手册 - ORM 单表数据获取

    Django 单表数据的获取: 先建立数据表格 from django.db import models # Create your models here. class userinfo(model ...

  6. Required String parameter 'images' is not present

    后台控制层控制为非必填即可: @RequestMapping("/addDo") @SJson @SLog(description = "Car_main") ...

  7. springboot多模块开发以及整合dubbo\zookeeper进行服务管理

    之前研究了springboot单工程的使用,参考git地址:https://github.com/qiao-zhi/springboot-ssm 下面研究springboot多模块开发的过程. 1.模 ...

  8. 数据库无法启动ORA-01034: ORACLE not available

    错误场景: 1.数据库未启动,查询v$instance报错 SQL> select status from v$instance; select status from v$instance * ...

  9. [转] 解决Driver/library version mismatch

    跑模型 torch.cuda.is_available()返回 False nvidia-smi返回:Failed to initialize NVML: Driver/library version ...

  10. 数字图像处理的Matlab实现(4)—灰度变换与空间滤波

    第3章 灰度变换与空间滤波(2) 3.3 直方图处理与函数绘图 基于从图像亮度直方图中提取的信息的亮度变换函数,在诸如增强.压缩.分割.描述等方面的图像处理中扮演着基础性的角色.本节的重点在于获取.绘 ...