当前位置: 首页 > news >正文

做网站的学校杭州洛可可设计公司

做网站的学校,杭州洛可可设计公司,Wordpress 建站 软件,江西网站建设哪家公司好【T-SQL】| 作者 / Edison Zhou这是EdisonTalk的第296篇学习分享T-SQL是ANSI和ISO SQL标准的MS SQL扩展#xff0c;其正式名称为Transact-SQL#xff0c;但一般程序员都称其为T-SQL。本文是我学习《T-SQL查询》一书的读书笔记#xff0c;为你讲解逻辑查询的内幕。1逻辑查询处… 【T-SQL】| 作者 / Edison Zhou这是EdisonTalk的第296篇学习分享T-SQL是ANSI和ISO SQL标准的MS SQL扩展其正式名称为Transact-SQL但一般程序员都称其为T-SQL。本文是我学习《T-SQL查询》一书的读书笔记为你讲解逻辑查询的内幕。1逻辑查询处理的各个阶段流程总览阶段解释1FROM标识出查询的来源表处理表运算符。每个运算符会应用一系列的子阶段。eg.在JOIN连接运算中涉及的阶段是笛卡尔积、ON筛选器和添加外部行。FROM阶段会生成一个虚拟表这里暂定为VT1。1-J1笛卡尔积对涉及到的两个表执行笛卡尔积交叉联接生成虚拟表VT1-J1。1-J2ON筛选器对VT1-J1中的行根据ON子句中出现的谓词进行筛选。只有让该谓词取值为TRUE的行才能插入到VT1-J2中。1-J3添加外部行如果指定了OUTER JOIN相对于CROSS JOIN或INNER JOIN则将保留表Preserved Table中没有找到匹配的行作为外部行添加到VT1-J2中生成VT1-J3。2WHERE根据在WHERE子句中出现的谓词对VT1中的行进行筛选。只有让谓词计算结果为TRUE的行才会插入VT2中。3GROUP BY按照GROUP BY子句中指定的列名列表将VT2中的行进行分组生成VT3。最终每个分组只有一个结果行。4HAVING根据HAVING子句出现的谓词对VT3中的分组进行筛选。只有让谓词计算结果为TRUE的行才会插入VT4。5SELECT处理SELECT子句中的元素产生VT5。5-1计算表达式计算SELECT列表中的表达式生成VT5-1。5-2DISTINCT删除VT5-1中的重复行生成VT5-2。5-3TOP根据ORDER BY子句定义的逻辑排序从VT5-2中选择前面指定数量或百分比的行生成VT5-3。6ORDER BY根据ORDER BY子句中指定的列名列表对VT5-3中的行进行排序生成游标VC6。2一个逻辑查询的示例示例场景假设有两张表Customers和Orders表结构和数据如下  这里我们要查询来自Madrid并且订单数少于3个的客户查询代码和结果也如下图所示阶段详解1FROM阶段FROM dbo.Customers AS CLEFT OUTER JOIN dbo.Orders AS OON C.customerid O.customerid 步骤1-J1笛卡尔积这里先不考虑LEFT OUTER通过JOIN交叉联接后形成虚拟表VT1-J1步骤1-J2ON筛选器ON筛选器的作用在于从上一步生成的虚拟表VT1-J1中的所有行中筛选出只有使 C.customerid O.customerid 为TRUE的那些行将其输出到新的虚拟表VT1-J2中。步骤1-J3添加外部行这一步只会在外链接OUTER JOIN中才会发生。这里是Customers AS C LEFT OUTER JOIN Orders AS O即Customer作为保留表。最终的虚拟表VT1-J3如下*.这里Customer作为保留表所以FISSA虽然没有满足ON筛选器但是也会被添加到虚拟表中。2WHERE阶段WHERE C.city Madrid 在此阶段会去掉VT1中客户为MRPHS的行因为其cityid不是Madrid生成如下所示的VT2ON和WHERE的区别WHERE对行的删除是最终的而ON对行的删除并不是因此步骤1-J3添加外部行时会再添加回来。此外只有当使用外连接时ON和WHERE才存在这种逻辑区别。3GROUP BY阶段GROUP BY C.customerid 这一步将VT2中的数据行按组进行重组得到VT3如下图所示4HAVING阶段HAVING COUNT(O.orderid) 3 这一步从VT3中进行筛选只有使得COUNT(O.orderid)3逻辑值为TRUE的组才会进入到VT4。HAVING筛选器是唯一可用于分组数据的筛选器。这里没有使用COUNT(*)是因为在外联接中COUNT(*)会把外部行也统计在内比如会将FISSA的订单数统计为1这明显是错误的。5SELECT阶段步骤5-1计算表达式SELECT C.customerid, COUNT(O.orderid) as numorders 得到VT5-1步骤5-2应用DISTINCT子句此示例木有DISTINCT子句故VT5-1没有变化。步骤5-3应用TOP选项TOP选项时T-SQL特有的一项功能允许指定要返回的行数或百分比。不过此示例也没有指定TOP估计VT5VT5-1。6ORDER BY阶段ORDER BY numorders 这一步将对VT5进行排序返回游标VC6。ORDER BY子句也是唯一可以重用SELECT列表中创建的列别名的步骤。Ref参考资料[美] Itzik Ben-Gan 著《SQL Server 2008技术内幕T-SQL查询》????扫码关注EdisonTalk设为星标不再失联往期推文合集2020年上半年推文合集更多SQL文章每天10分钟T-SQL系列
http://www.huolong8.cn/news/380530/

相关文章:

  • 购物网站后台好管理吗管理咨询师考试
  • 建设网站聊天室十款免费软件app下载
  • 爱网站找不到了网站模板设计举例
  • 吉林省建设厅网站杨学武佛山网站建设公司-印象互动
  • 杭州设计网站的公司彩票网站建设要多少钱
  • 大莲网站建设公司专业seo整站优化
  • 建设一个购物网站需要什么意思网站开发 需求
  • 公司网站维护教程综合网站模板
  • 本单位门户网站是什么意思免费做网站怎么做网站
  • 最好的网站开发刷单的网站怎么建设
  • 网站信息员队伍建设方案学网页设计工资多少
  • 商务网站开发的的基本流程网站源码在线查看
  • 企业建站系统营销吧tt团队网站建设服务费会计分录
  • 做学校网站素材图片大全中国建设网建设通官方网站
  • 做网站需要钱吗广州网站建设藤虎网络
  • 网站建设公司一年多少钱科技公司网站模板官网
  • 仿微博网站模板外国网站建设公司
  • 商城网站建设服务器建设建材网站
  • 肇庆网络推广南阳seo网站排名优化
  • 如何搭建php视频网站官方网站打不开怎么回事
  • 网站注册信息公司网站的建设
  • 西安seo网站设计公司深圳建设工程交易
  • vs2012网站开发环境做卖车网站需要什么手续
  • 万网经常清空网站临清网站开发
  • 网站建设推广的10种方法东海县建设局网站
  • 网站开发简直百度号码认证平台首页
  • 网站内容建设的原则是什么受欢迎的汕头网站推广
  • 推广发帖网站建筑设计加盟分公司
  • 网站 后台 开发汉聪电商代运营怎么样
  • 广州优化网站建设wordpress 站内信插件