第7章SQL高级应用.ppt

  1. 1、本文档共77页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章SQL高级应用

7.1.1 数据汇总查询 7.1.2 联接查询 7.1.3 子查询 7.1.4 使用UNION运算符组合多个结果 7.1.5 在查询的基础上创建新表 聚合函数仅在下列项中允许作为表达式使用: SELECT语句的选择列表(子查询或外部查询) COMPUTE或COMPUTE BY子句 HAVING子句 例: 查询authors表中有几个作者的地址存在 SELECT COUNT(address) FROM authors 查询book表中书籍的价格的最大值 SELECT MAX(price) FROM book 2. GROUP BY子句 [ GROUP BY [ ALL ] group_by_expression [ , …n ] [ WITH { CUBE | ROLLUP } ] ] 其中: ALL:包含所有组和结果集。不能用CUBE和ROLLUP指定ALL。 group_by_expression:分组表达式。 CUBE:在结果集中返回每个可能的组和子组组合的GROUP BY汇总行。 汇总行在结果中显示为null,用来表示所有值。 ROLLUP:结果集按层次结构顺序,依据GROUP BY后面所列第一个字段做汇总运算。 注:指定GROUP BY 时,选择列表中任一非聚合表达式的所有列都应包含在GROUP BY 列表中。 3. HAVING子句 [HAVING search_condition] 其中: search_condition:指定组或聚合应满足的条件 注:聚合函数可以在HAVING子句使用,但不能在WHERE子句使用。 4. COMPUTE和COMPUTE BY子句 [ COMPUTE { { AVG | COUNT | MAX | MIN | STDEV | STDEVP| VAR | VARP | SUM } ( expression ) } [ , …n ] [ BY expression [ , …n ] ] 作用:COMPUTE子句即查看明细行,又查看汇总行。可以计算子组的汇总值,也可计算整个结果集的汇总值。 COMPUTE子句需要下列信息: 可选的BY关键字。 行聚合函数名称。如:SUM、AVG、MIN、MAX、COUNT 要对其执行行聚合函数的列。 COMPUTE生成的结果 当COMPUTE不带可选的BY子句时,SELECT语句有两个结果集: 每个组的第一个结果集是包含选择列表信息的所有明细行。 第二个结果集有一行,其中包含COMPUTE子句中所指定的聚合函数的合计。 当COMPUTE带有可选的BY子句时,符合SELECT条件的每个组都有两个结果集: 每个组的第一个结果集是明细行集,其中包含该组的选择列表信息。 每个组的第二个结果集有一行,其中包含该组的COMPUTE子句中所指定的聚合函数的小计。 如果使用COMPUTE BY,则必须也使用ORDER BY子句。表达式必须与在ORDER BY后列出的子句相同或是其子集。 如:ORDER BY 子句是 ORDER BY a, b, c 则COMPUTE BY子句可以是下面的某个: COMPUTE BY a, b, c COMPUTE BY a, b COMPUTE BY a 比较COMPUTE和GROUP BY GROUP BY 生成单个结果集。每个组都有一个只包含分组依据列和显示该组子聚合的聚合函数的行。选择列表只能包含分组依据列和聚合函数。 COMPUTE 生成多个结果集。一类结果集包含每个组的明细行,另一类结果集包含组的子聚合,或SELECT语句的总聚合。选择列表可包含除分组依据列或聚合函数之外的其他表达式。聚合函数在COMPUTE子句中指定,而不是在选择列表中。 连接条件通过以下方法定义两个表在查询中的关联方式: 指定每个表中要用于连接的列。典型的连接条件在一个表中指定外键,在另一个表中指定与其关联的键。 指定比较各列的值时要使用的逻辑运算符(=、等)。 简单的子句联接语法如下: FROM first_table join_type second_table [ON (join_condition)] 其中: join_type:是join 或 inner join时是内联接; 是left join时是左向外联接; 是right join时是右向外联接; 是full join时是完整外联接; 是cross join时是交叉联接。 SQL Server处理联接时,查询引擎处理条件的逻辑序列: FROM子句中的联接条件 WH

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档