当前位置:
文档之家› 第6章 SQL 高级应用.ppt
第6章 SQL 高级应用.ppt
ROLLUP:指定在结果集内不仅包含由 GROUP BY 提 供的正常行,还包含汇总行。按层次结构顺序,从组内 的最低级别到最高级别汇总组。组的层次结构取决于指 定分组列时所使用的顺序。更改分组列的顺序会影响在 结果集内生成的行数。
2020年10月19日星期一
华北科技学院 李文武
8
6.1.2 联接查询
COMPUTE BY子句可以用同一SELECT语句 既查看明细行,又查看汇总行。可计算分组的 汇总值,也可计算整个结果集的汇总值。
2020年10月19日星期一
华北科技学院 李文武
3
COMPUTE 生成的结果集
当 COMPUTE 带有可选的 BY 子句时,符合 SELECT 条件的每个组都有两个结果集:
完整外部联接:包括所有联接表中的所有行, 不论它们是否匹配。FULL JOIN
2020年10月19日星期一
华北科技学院 李文武
11
3. 交叉联接
在这类联接的结果集内,两个表中每两个可能 成对的行占一行。
交叉联接不使用WHERE子句。
2020年10月19日星期一
华北科技学院 李文武
12
6.1.3 子查询
每个组的第一个结果集是明细行集,其中包含该组的选择列 表信息。
每个组的第二个结果集有一行,其中包含该组的 COMPUTE 子句中所指定的聚合函数的小计。
当 COMPUTE 不带可选的 BY 子句时,SELECT 语句 有两个结果集:
每个组的第一个结果集是包含选择列表信息的所有明细行。 第二个结果集有一行,其中包含 COMPUTE 子句中所指定的
另一类结果集包含组的子聚合,或 SELECT 语句的总聚合。 选择列表可包含除分组依据列或聚合函数之外的其它表达式。 聚合函数在 COMPUTE 子句中指定,而不是在选择列表中。
2020年10月19日星期一
华北科技学院 李文武
5
2. GROUP BY 子句
指定用来放置输出行的组,并且如果 SELECT 子句 <select list> 中包含聚合函数,则计算每 组的汇总值。指定 GROUP BY 时,选择列表中 任一非聚合表达式内的所有列都应包含在 GROUP BY 列表中,或者 GROUP BY 表达式 必须与选择列表表达式完全匹配。
2020年10月19日星期一
华北科技学院 李文武
7
CUBE:指定在结果集内不仅包含由 GROUP BY 提供 的正常行,还包含汇总行。在结果集内返回每个可能的 组和子组组合的 GROUP BY 汇总行。GROUP BY 汇 总行在结果中显示为 NULL,但可用来表示所有值。使 用 GROUPING 函数确定结果集内的空值是否是 GROUP BY 汇总值。
如果访问远程表的查询中有 WHERE 子句,则不支持 GROUP BY ALL 操作。
group_by_expression:是对其执行分组的表达式。
group_by_expression 也称为分组列。group_by expression 可以是列或引用列的非聚合表达式。在选 择列表内定义的列的别名不能用于指定分组列。
通过联接根据各表间的逻辑关系从两个或多个 表中检索数据。
定义方法:
可以在FROM 或WHERE子句中使用比较运算符给 出联接条件对表进行联接。
指定各表中用于联接的列。
比较符可以是<、<=、=、>、>=、!=、<>、!< 和!>
联接条件与WHERE和HAVING子句的搜索条件配
合完成查询。查询所选的行首先通过 FROM 子句
第6章 SQL 高级应用
电子商务数据库技术
6.1 SELECT 高级查询
6.1.1数据汇总
1.聚合函数:对一组值操作,返回单一的汇总值。 聚合函数在如下情况下,允许作为表达式使用:
(1)SELECT语句的选择列表(子查询或外部查询)。 (2)COMPUTE或COMPUTE BY子句。 (3)HAVING子句。
关键词为:INNER JOIN
2020年10月19日星期一
华北科技学院 李文武
10
2. 外联接
包括在联接表中没有相关行的行的联接。
左向外联接:包括第一个命名表(“左”表, 出现在 JOIN 子句的最左边)中的所有行。不 包括右表中的不匹配行。LEFT JOIN
右向外联接:包括第二个命名表(“右”表, 出现在 JOIN 子句的最右边)中的所有行。不 包括左表中的不匹配行。RIGHT JOIN
聚合函数的合计。
2020年10月19日星期一
华北科技学院 李文武UP BY 生成单个结果集。每个组都有一个只包含 分组依据列和显示该组子聚合的聚合函数的行。选择列 表只能包含分组依据列和聚合函数。
COMPUTE 生成多个结果集。
一类结果集包含每个组的明细行,其中包含选择列表中的表 达式。
联接条件进行筛选,其次由 WHERE 子句搜索条
件筛选,然后由 HAVING 子句搜索条件筛选 。
2020年10月19日星期一
华北科技学院 李文武
9
1. 内联接
仅显示两个联接表中的匹配行的联接。是查询 分析器中的默认联接类型。
当创建内联接时,包含 NULL 的列不与任何 值匹配,因此不包括在结果集内。空值不与其 它的空值匹配。
语法
[ GROUP BY [ ALL ] group_by_expression [ ,...n ] [ WITH { CUBE | ROLLUP } ]
]
2020年10月19日星期一
华北科技学院 李文武
6
ALL:包含所有组和结果集,甚至包含那些任何行都不 满足 WHERE 子句指定的搜索条件的组和结果集。如 果指定了 ALL,将对组中不满足搜索条件的汇总列返 回空值。不能用 CUBE 或 ROLLUP 运算符指定 ALL。
2020年10月19日星期一
华北科技学院 李文武
2
COMPUTE和COMPUTE BY
COMPUTE子句用于分类汇总,格式为:
[COMPUTE{聚合函数名(expression)}[,...n][BY expression[,...n]]]
其中expression是列名;COMPUTE将产生 额外的汇总行。