浅谈SQL与PLSQL开发实战
来源:Asp之家 时间:2011-05-05 08:15:00
编者注:当讲到了性能优化和案例方面的东西,就要想到如何从开发人员的角度进行了理解,认识SQL是如何执行,以及如何学习高级的SQL,这篇文章对以上问题做了简单小结。
▲ITPUB版主丁俊
▲全面的ORACLE SQL知识体系
谈到认识SQL的逻辑和物理执行顺序逻辑顺序时,丁俊提到两点:一、理解SQL的逻辑执行顺序,可以大幅度减少错误SQL的编写。二、理解SQL的逻辑执行顺序,可以深化对SQL的认识,有利于处理更加复杂的业务逻辑。
▲认识SQL的逻辑和物理执行顺序逻辑顺序
能够用SQL解决的就不要用PLSQL了,而PLSQL是SQL的很好的补充。
▲认识SQL的逻辑和物理执行顺序 逻辑顺序续
SQL的物理执行顺序就是实际的EXECUTION PATH.物理执行顺序依赖于CBO优化器组件,非常复杂。
▲认识SQL的逻辑和物理执行顺序 CBO简介
▲认识SQL的逻辑和物理执行顺序 物理执行顺序案例
▲从分析函数学习谈如何学SQL
从文档提取分析函数特点:
分析函数依赖于分析子句对当前行所属的分组进行分析函数计算。用于复杂的行间和累计值的计算。
分析函数与组函数不同。根据1的特点,分析函数同时能计算分组值,并且还能保留当前行的其他列值。--重要特性
分析函数分类:排名(rank,dense_rank,row_number,first/last,ntile等)、聚合报表函数(sum,count等以及ratio_to_report)、行比较(lead/lag,first_value/last_value)、数学统计(stddev,var_pop等)等函数。
从分析函数学习谈如何学SQL总结
分析函数可以实现复杂的行间计算功能,诸如累计值,行间比较,报表统计等功能。学习分析函数要把握每种分析函数的特点,并掌握分析函数中的关键元素的联系区别:比如ROWS与RANGE区别,window子句与partition、order by的关系,掌握窗口、当前行的概念。此外ORACLE还支持自定义的聚集函数,可以实现分析函数的功能,可以参考Data Cartridge Developer‘s Guide。