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

响应式网站建设平台网络营销的优化和推广方式

响应式网站建设平台,网络营销的优化和推广方式,重装wordpress图片不见,wordpress英文源码【MySQL系列】- SELECT语句执行顺序 文章目录 【MySQL系列】- SELECT语句执行顺序一、MYSQL逻辑查询处理的步骤图二、MYSQL执行顺序详解2.1 执行FROM操作2.2 应用ON过滤器2.3 JOIN外部行2.4 应用WHERE过滤器2.5 GROUP BY分组2.6 应用ROLLUP 或 CUBE2.7 HAVING过滤2.8 处理SELEC…

【MySQL系列】- SELECT语句执行顺序

文章目录

  • 【MySQL系列】- SELECT语句执行顺序
    • 一、MYSQL逻辑查询处理的步骤图
    • 二、MYSQL执行顺序详解
      • 2.1 执行FROM操作
      • 2.2 应用ON过滤器
      • 2.3 JOIN外部行
      • 2.4 应用WHERE过滤器
      • 2.5 GROUP BY分组
      • 2.6 应用ROLLUP 或 CUBE
      • 2.7 HAVING过滤
      • 2.8 处理SELECT 列表
      • 2.9 DISTINCT子句
      • 2.10 应用ORDER BY 子句
      • 2.11 LIMIT子句
    • 三、总结

一、MYSQL逻辑查询处理的步骤图

在这里插入图片描述

二、MYSQL执行顺序详解

2.1 执行FROM操作

这一步需要做的是对FROM子句前后的两张表进行笛卡尔积操作,也称作为交叉连接,生成虚拟表VT1。如果FROM子句前的表包含a行数据,FROM子句后的表中包含b行数据,那么虚拟表VT1将包含a*b行数据。

2.2 应用ON过滤器

SELECT查询共有3个过滤流程,分别是ON、WHERE、HAVING。ON是最先执行的过滤流程。 在大多数的编程语言中,逻辑表达式的值只有两种:TRUE 和 FALSE。但是在关系数据库中起逻辑表达式作用的并非只有两种,还有一种称为三值逻辑的表达式。这是因为在数据库中对NULL值的比较与大多编程语言不同。在C语言中,NULL == NULL的比较返回的是1,即相等,而在关系型数据库中,NULL的比较就不一样了。对于在ON过滤条件下的NULL值比较,此时的比较结果为UNKNOWN,却被视为FALSE来处理,即两个NULL并不相同。但是在下面两种情况认为两个NULL值的比较是相等的

  • GROUP BY 子句把所有的NULL值都分到一组;
  • ORDER BY 子句中将所有NULL值排列在一起;

因此在生成虚拟表VT2的时候,会增加一个额外的列来表示ON过滤条件的返回值,返回值有FALSE 、 TRUE 、 UNKNOWN。

2.3 JOIN外部行

这一步只有在连接类型是OUTER JOIN时才发生,如LEFT OUTER JOIN , RIGHT OUTER JOIN , FULL OUTER JOIN.虽然在大多数时候可以省略OUTER关键字,但OUTER代表的就是外部行。关于保留表:

  • LEFT OUTER JOIN把左表记为保留表;
  • RIGHT OUTER JOIN把右表记为保留表;
  • FULL OUTER JOIN把左右表都作为保留表;

添加外部行的工作就是在VT2表的基础上添加保留表中被过滤掉的数据,非保留表中的数据被赋NULL值,最后生成虚拟表VT3

2.4 应用WHERE过滤器

对上一步骤产生的虚拟表VT3进行WHERE条件过滤,只有符合<where_condition>的记录才会输出到虚拟表VT4中。

在当前应用WHERE过滤器时,有两种过滤是不被允许的:

  1. 由于数据还没有分组,因此现在还不能在WHERE过滤器中使用where_condition=MIN(col)这类统计的过滤;
  2. 由于没有进行列的选取操作,因此在SELECT过滤器中使用列名也是不被允许;

此外,在WHERE过滤器中进行的过滤和在ON过滤器中进行的过滤是有所不同的:

  1. 对于OUTER JOIN中的过滤,在ON过滤器过滤完成之后还会添加保留表中被ON条件过滤掉的记录。
  2. WHERE 条件中被过滤掉的记录则是永久的过滤,在INNER JOIN中两者是没有差别的,因为没有添加外部行的操作。

2.5 GROUP BY分组

在本步骤中根据指定的列对上个步骤中产生的虚拟表进行分组,最后得到虚拟表VT5; MySQL对查询做了加强,使得在GROUP BY 后面可以使用SELECT中定义的别名。

在MySQL中,Group By中可以使用别名;WHERE中不能使用别名;ORDER BY中可以使用别名。在ORACLE,HIVE中别名的使用都是严格遵循SQL执行顺序的,GROUP BY后面不能用别名。

2.6 应用ROLLUP 或 CUBE

  • ROLLUP

    如果指定了ROLLUP选项,那么将创建一个额外的记录添加到虚拟表VT5的最后,并生成虚拟表VT6

  • CUBE

    对于CUBE选项,MySQL数据库虽然支持该关键字的解析,但是并未实现功能。

2.7 HAVING过滤

在该步骤中对于上一步产生的虚拟表应用HAVING过滤器,HAVING是对分组条件进行过滤的筛选器。生成的虚拟表VT7

2.8 处理SELECT 列表

虽然SELECT是查询中最先被指定的部分,但是知道步骤8时才真正进行处理,在这一步中,将SELECT中指定的列从上一步产生的虚拟表中选出。

2.9 DISTINCT子句

如果在查询中指定了DISTINCT子句,则会创建一张内存临时表VT9(如果内存放不下就放到磁盘上)。这张临时表的表结构和上一步产生的虚拟表一样,不同的是对进行DISTINCT操作的列增加了一个唯一索引,以此来去除重复的数据。

2.10 应用ORDER BY 子句

根据ORDER BY子句中指定的列上对上一步输出的虚拟表进行排列,返回新的虚拟表,最后得到的虚拟表VT10。

2.11 LIMIT子句

在该步骤中应用LIMIT子句,从上一步骤的虚拟表中选出从指定位置开始的指定行数据。对于没有应用ORDER BY 的LIMIT子句,结果同样可能是无序的,因此LIMIT语句通常和ORDER BY子句一起使用。

三、总结

MYSQL语句每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。这些虚拟表对调用者(客户端应用程序或者外部查询)不可用。只有最后一步生成的表才会给调用者。如果没有在查询中指定某一个子句,将跳过相应的步骤。


文章转载自:

http://RNG7UHU3.grynb.cn
http://gr3hOTKE.grynb.cn
http://8J4XT3P5.grynb.cn
http://RxTzQE27.grynb.cn
http://kOC2CYTn.grynb.cn
http://BGhgaO54.grynb.cn
http://Xn2nNWX2.grynb.cn
http://yuCe7DLW.grynb.cn
http://n14azjup.grynb.cn
http://CAdZIzmT.grynb.cn
http://NFovrdfP.grynb.cn
http://06DCiDIy.grynb.cn
http://zkhw9g7j.grynb.cn
http://BpPxOw3J.grynb.cn
http://bVca4rpU.grynb.cn
http://SARiZHMD.grynb.cn
http://MGUs01EU.grynb.cn
http://Fmxc4c4T.grynb.cn
http://XOIgCCDb.grynb.cn
http://1REXDnYu.grynb.cn
http://kpX9a9hC.grynb.cn
http://klpjb7Ft.grynb.cn
http://eD4oDyr1.grynb.cn
http://A20f23Cn.grynb.cn
http://BJc0fVnv.grynb.cn
http://hiAlvyek.grynb.cn
http://d2p789Qp.grynb.cn
http://CweGf7LM.grynb.cn
http://ll5PsoZi.grynb.cn
http://w2W2KFtg.grynb.cn
http://www.dtcms.com/wzjs/710488.html

相关文章:

  • 惠州 网站建设天津的网站建设公司
  • 台州网站定制长沙网站维护
  • 外包公司做网站图片哪里整的做网站推广有用不
  • 景安网站备案幕布工程公司年会发言稿
  • 互联网网站制作没有网站怎么做链接视频播放器
  • 经营网站赚钱wordpress最大图片尺寸
  • 网站做多久能盈利文化馆互联网站建设方案
  • 建外贸企业网站南充网站建设略奥网络
  • 杭州在线制作网站企业网站的分类
  • 查手表价格的网站东莞常平社保局电话
  • 国外网站页面做多大深圳前十vi设计公司
  • 做网站图片显示不来北京公司注册地址出租
  • flash网站读条怎么做店铺装修风格有哪些
  • 国内网站制作欣赏互动营销案例100
  • 帮助网站源码聊城经济技术开发区人才网
  • 企业网站开发心得体会网站导航条做多高
  • 网站开发工具发展史小程序商城一般哪家好
  • 利用帝国cms网站建设2013网站建设方案
  • 移动端的网站模板网站的面包屑怎么做的
  • 网站建设公司济宁wordpress的文件结构
  • 蒙文网站建设的意义手把手教你入侵网站修改数据
  • 国内自建站新网站快速收录
  • 海淀网站建设服务物流网站系统php源码
  • 模板型网站建设淘宝客 wordpress
  • 网站的页面设计网页制作作品
  • 三星商城app下载安康地seo
  • asp购物网站客户查看购物车酒店网站建设的基本内容
  • 公司网站建设模块中天会展中心网站建设方案
  • 跨境电商网站建设主管岗位职责做网站一般建多大的页面
  • 企业自建站案例公司 备案 网站名称