下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
读书 > 数据库 >Oracle > Oracle查询优化改写技巧与案例

Oracle查询优化改写技巧与案例

综合评级:★★★★★

定价:69.00

作者:有教无类 落落 著

出版社:电子工业出版社

出版日期:2015年1月

页数:412

字数:520000

ISBN:9787121247101

书籍介绍

《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询和优化改写都要用到。第5~12章是提高部分,讲解了正则表达式、分析函数、树形查询及汇总函数的用法。这部分知识常用于对一些复杂需求的实现及优化改写。最后两章介绍日常的优化改写案例。这部分是前面所学知识的扩展应用。

如果您是开发人员,经常与Oracle打交道,那么《Oracle查询优化改写技巧与案例》可以帮助您处理复杂的需求,写出高性能的语句。如果您是运维人员,则《Oracle查询优化改写技巧与案例》可以帮助您更快地完成慢语句的改写优化。

相关课程
目录

第1章单表查询 1

1.1 查询表中所有的行与列 1

1.2 从表中检索部分行 2

1.3 查找空值 3

1.4 将空值转换为实际值 4

1.5 查找满足多个条件的行 5

1.6 从表中检索部分列 6

1.7 为列取有意义的名称 6

1.8 在WHERE子句中引用取别名的列 7

1.9 拼接列 7

1.10 在SELECT语句中使用条件逻辑 8

1.11 限制返回的行数 10

1.12 从表中随机返回n条记录 10

1.13 模糊查询 12

第2章给查询结果排序 14

2.1 以指定的次序返回查询结果 14

2.2 按多个字段排序 16

2.3 按子串排序 16

2.4 TRANSLATE 17

2.5 按数字和字母混合字符串中的字母排序 19

2.6 处理排序空值 20

2.7 根据条件取不同列中的值来排序 21

第3章操作多个表 23

3.1 UNION ALL与空字符串 23

3.2 UNION与OR 24

3.3 组合相关的行 31

3.4 IN、EXISTS和INNER JOIN 31

3.5 INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN解析 34

3.6 自关联 37

3.7 NOT IN、NOT EXISTS和LEFT JOIN 38

3.8 外连接中的条件不要乱放 41

3.9 检测两个表中的数据及对应数据的条数是否相同 45

3.10 聚集与内连接 46

3.11 聚集与外连接 50

3.12 从多个表中返回丢失的数据 50

3.13 多表查询时的空值处理 53

第4章插入、更新与删除 55

4.1 插入新记录 55

4.2 阻止对某几列插入 56

4.3 复制表的定义及数据 57

4.4 用WITH CHECK OPTION限制数据录入 57

4.5 多表插入语句 58

4.6 用其他表中的值更新 62

4.7 合并记录 67

4.8 删除违反参照完整性的记录 70

4.9 删除名称重复的记录 71

第5章使用字符串 74

5.1 遍历字符串 74

5.2 字符串文字中包含引号 76

5.3 计算字符在字符串中出现的次数 77

5.4 从字符串中删除不需要的字符 78

5.5 将字符和数字数据分离 79

5.6 查询只包含字母或数字型的数据 80

5.7 提取姓名的大写首字母缩写 85

5.8按字符串中的数值排序 87

5.9根据表中的行创建一个分隔列表 88

5.10提取第n个分隔的子串 88

5.11分解IP地址 90

5.12将分隔数据转换为多值IN列表 90

5.13按字母顺序排列字符串 91

5.14判别可作为数值的字符串 94

第6章使用数字 100

6.1 常用聚集函数 100

6.2 生成累计和 102

6.3 计算累计差 106

6.4 更改累计和的值 108

6.5 返回各部门工资排名前三位的员工 110

6.6 计算出现次数最多的值 111

6.7 返回最值所在行数据 113

6.8 first_value 116

6.9 求总和的百分比 119

第7章日期运算 122

7.1 加减日、月、年 122

7.2 加减时、分、秒 123

7.3 日期间隔之时、分、秒 124

7.4 日期间隔之日、月、年 124

7.5 确定两个日期之间的工作天数 124

7.6 计算一年中周内各日期的次数 127

7.7 确定当前记录和下一条记录之间相差的天数 129

第8章日期操作 131

8.1 SYSDATE能得到的信息 131

8.2 INTERVAL 134

8.3 EXTRACT 135

8.4 确定一年是否为闰年 137

8.5 周的计算 138

8.6 确定一年内属于周内某一天的所有日期 139

8.7 确定某月内第一个和最后一个“周内某天”的日期 140

8.8 创建本月日历 141

8.9 全年日历 142

8.10 确定指定年份季度的开始日期和结束日期 145

8.11 补充范围内丢失的值 145

8.12 按照给定的时间单位进行查找 147

8.13

前言
因开办了Oracle优化改写的在线培训,在教学和答疑的过程中有很多读者希望我能推荐一些相关的学习书籍。说实话,有关Oracle的书籍非常多,但在给读者推荐书籍时我发现特意针对优化改写的书籍不好找,因为很多资料注重各种语法的实现,对优化方面的知识考虑得较少,而介绍优化知识的书籍对改写知识涉及得也不多。因此,和落落商量后,尝试编写了这本书。

本书共分14章,各章的主要内容如下:

◎ 第1章介绍初学者在NULL上常犯的错误、字符串中单引号的处理方式及模糊查询时对通配符的转义。

◎ 第2章讲述了ORDER BY的用法及TRANSLATE的特殊用法。

◎ 第3章是基础知识的重点内容,需要掌握好各种连接的写法及为什么要左联、右联,以及过滤条件错误地放在WHERE里会有什么影响;当数据有重复值时要直接关联还是分组汇总后再关联。

◎ 第4章介绍了UPDATE语句的正确用法,以及什么时候UPDATE语句应改写为MERGE。

◎ 第5章以案例的形式讲解了正则表达式的用法,对正则表达式的基础语法不熟悉的读者可以通过官方文档或我的BLOG来学习,这里面对字符串的拆分方法可以直接套用,而对字符串的分组处理难度稍高,不常处理类似数据的读者可以略过。

◎ 第6章介绍了常用分析函数的几个案例,大部分情况下使用分析函数会让查询速度得到很大提升。所以,如果想熟练地改写,就必须熟悉分析函数的应用。另外,本章还对很多人感到模糊的max() keep()语句进行了分析。

◎ 第7、8章讲了DATE类型的常见用法。

◎ 第9章仍然介绍分析函数,希望本章内容对范围的处理能给读者一些借鉴。

◎ 第10章的重点是结果集的分页,要弄清楚如何分页,为什么Oracle的分页会写得那么复杂,等等。

◎ 第11章讲述了行列转换函数,并对两个函数进行了剖析,理解了其中的原理就可以用UNPIVOT对UNION ALL做一定的优化。本章的另一个重点就是分组汇总小计的统计,熟练掌握ROLLUP及CUBE可以让你少写一些UNION ALL语句。

◎ 第12章能帮助读者在写树形查询时减少不必要的错误,生成更准确的数据。

◎ 第13章选取了部分网友的需求案例,希望读者能通过这些案例的启发找到实现自己需求的思路。

◎ 第14章选取了能覆盖目前大部分的改写方法的案例。读者需要在对前面的内容熟悉的基础上来学习这些案例。各种改写方法能否提高速度都与对应的环境有关,所以掌握更多的优化知识和改写方法对优化有很大的帮助。

在此要特别感谢白鳝老师和我们的同事道道给本书作序,通过白鳝老师写的序可以看到,他认真阅读并给了非常中肯的评价,能在百忙之中花费大量时间耐心地把我第一次写的书看完,确实非常令人感动。另外,还要感谢出版社的各位编辑,因为我第一次写书,有很多地方词不达意,是他们给我指出错误的地方,并给出改正意见。

因水平有限,本书在编写过程中难免有错漏之处,恳请读者批评、指正。

热门图书
推荐新闻
技术文库
论坛推荐