SQL高级 第3章.pptx

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

第3章;变量的使用。要先用DECLARE 关键字声明,然后用SET或SELECT赋值。局部变量前必须有 “@” 作前缀,全局变量必须有 “@@” 作前缀。 变量的输出可以用:PRINT或SELECT语句。 逻辑控制语句提供了条件操作所需的顺序和逻辑。 了解T-SQL编写工具。 批处理可以提高语句执行的效率,使用“GO”作为结束标志。 ;嵌套子查询 聚合技术 排序函数 公式表表达式 ;学员信息表、学员成绩表;什么是子查询 3-2;什么是子查询 3-3;使用灵活。 可以成为SQL 语句的多个部分。 子查询作为查询条件使用。 子查询作为临时表使用。 子查询作为列使用。 降低SQL 的语句的复杂度,提高SQL 语句的可读性。 ;子查询作为查询条件使用;子查询作为临时表使用;子查询作为列使用;IN 和NOT IN 通常在WHERE 子句中使用,在IN 和NOT IN 后接的子查询中,可以有多个值出现。 ;使用IN和NOT IN 完成子查询-2;EXISTS 和 NOT EXISTS 表示存在和不存在的意思。 在语句中会判断EXISTS 和 NOT EXISTS 后接的子句是否存在和是否不存在。 NOT EXISTS的用法与EXISTS一样,唯一的区别就是意义相反。 ;在SQL 查询中,SOME、 ANY、 ALL后必须跟子查询。 在SQL 查询中, SOME 和 ANY 的作用是一样的,表示其中的任何一项。 ALL则表示其中的所有的项。;使用了COMPUTE进行汇总计算后的查询得到了两个结果集,第一个结果集返回查询语句前面的查询明细,后一个结果集返回汇总的结果,我们也可以在COMPUTE子句中添加多个汇总计算表达式。 COMPUTE 子句需要下列信息: 可选 BY 关键字。它基于每一列计算指定的行聚合。 行聚合函数名称。包括 SUM、AVG、MIN、MAX 或 COUNT。 要对其执行行聚合函数的列。 在有些场景中我们需要对结果先进行分组,然后进行汇总计算。这种情况下我们可以使用COMPUTE BY进行分组汇总查询。;排序函数 OVER( [分组子句] 排序子句[DESC][ASC] ) 排序子句 :ORDER BY 排序列,排序列… 分组子句 :PARTITION BY 分组列,分组列…;ROW_NUMBER函数生成的排序根据排序子句给出递增连续的序号 RANK函数生成的排序根据排序子句给出递增的序号,但是存在并列并且跳空 DENSE_RANK 函数生成的排序根据排序子句给出递增的序号,但是存在并列不跳空 根据上面三??函数,我们可以增加一个序列,但是有时候我们需要对数据进行分组,然后对分组后的数据进行增加序列,PARTITION BY可以与以上三个函数联合使用;排序函数示例;在查询过程中往往需要一些中间表,而这些中间表会在查询中重复使用,在SQL2005以前的数据库中,这些子查询通常被嵌套在外部查询反复调用,不但效率很低,而且SQL语句看上去很复杂,不利于理解。SQL2005利用公式表表达式很巧妙的解决了这个问题。 我们可以将公用表表达式 (CTE) 视为临时结果集,在 SELECT、INSERT、UPDATE、DELETE 或 CREATE VIEW 语句的执行范围内进行定义。;公式表表达式示例;嵌套子查询 使用IN和NOT IN 完成子查询 使用EXISTS 和 NOT EXISTS 完成子查询 使用SOME ANY ALL进行子查询 聚合技术 使用COMPUTE和COMPUTE BY进行汇总查询 排序函数 ROW_NUMBER函数 RANK函数 DENSE_RANK函数 公式表表达式

文档评论(0)

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

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

1亿VIP精品文档

相关文档