1、查询中用到的关键词主要包含六个,并且他们的顺序依次为

  select --> from --> where --> group by --> having --> order by 

  其中selectfrom是必须的,其他关键词是可选的


2、六个关键词的执行顺序是:

  from --> where --> group by --> having --> select --> order by

  from: 需要从哪个数据表检索数据 。

  where: 过滤表中数据的条件。

  group by: 如何将上面过滤出的数据分组。

  having: 对上面已经分组的数据进行过滤的条件。

  select: 查看结果集中的哪个列,或列的计算结果。

  order by: 按照什么样的顺序来查看返回的数据。


3、使用注意:

  ①、from后面的表关联,是自右向左解析的,而where条件的解析顺序是自下而上的。 也就是说,在写SQL的时候,尽量把数据量小的表放在最右边来进行关联(用小表去匹配大表);而把能筛选出小量数据的条件放在where语句的最左边 (用小表去匹配大表)。

  ②、使用count(列名)当某列出现null值的时候,count(*)仍然会计算,但是count(列名)不会。

  ③、group by:select 列a,聚合函数(聚合函数规范) from 表明 where 过滤条件 group by 列a

     group by 子句也和where条件语句结合在一起使用。当结合在一起时,where在前,group by在后。即先对select xx from xx的记录集合用where进行筛选,然后再使用group by对筛选后的结果进行分组。

  ④、having:having条件表达式,但是需要注意having和where的用法区别:

    i. having只能用在group by之后,对分组后的结果进行筛选(即使用having的前提条件是分组)。

    ii. where肯定在group by之前,即也在having之前。

    iii. where后的条件表达式里不允许使用聚合函数,而having可以。

  ⑤、当一个查询语句同时出现了where, group by, having, order by的时候,执行顺序和编写顺序是:

    i. 执行where xx对全表数据做筛选,返回第1个结果集。

    ii. 针对第1个结果集使用group by分组,返回第2个结果集。

    iii. 针对第2个结集执行having xx进行筛选,返回第3个结果集。

    iv. 针对第3个结果集中的每1组数据执行select xx,有几组就执行几次,返回第4个结果集。

    v. 针对第4个结果集排序。

SQL 关键字的使用顺序的更多相关文章

  1. SQL关键字的执行顺序

    1.Mysql执行顺序,即在执行时sql按照下面的顺序进行执行: from on join where group by having select distinct union order by 2 ...

  2. Mysql索引,有哪几种索引,什么时候该(不该)建索引;SQL怎么进行优化以及SQL关键字的执行顺序

    索引(Index)是帮助MySQL高效获取数据的数据结构.提取句子主干,就可以得到索引的本质:索引是数据结构. 1.按照索引列值的唯一性,索引可分为唯一索引和非唯一索引 非唯一索引:B树索引 crea ...

  3. sql关键字的解释执行顺序

      sql关键字的解释执行顺序 分类: 笔试面试总结2013-03-17 14:49 1622人阅读 评论(1) 收藏 举报 SQL关键字顺序 表里面的字段名什么符号都不加,值的话一律加上单引号 有一 ...

  4. {MySQL的逻辑查询语句的执行顺序}一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析

    MySQL的逻辑查询语句的执行顺序 阅读目录 一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析 一 SEL ...

  5. 单表:SQL语句关键字的执行顺序

    表和数据: -- 创建表 CREATE TABLE `person` ( `id` ) NOT NULL AUTO_INCREMENT, `name` ) NOT NULL, `age` ) ', ` ...

  6. SQL中关键字的执行顺序

    作为一个SQL新手,看到每种不熟悉的关键字时已经够迷茫了,可往往见到的语句关键字顺序还是各种各样,太难理解了.网上搜索了两篇文章,总结一下: 关于Sql关键字SELECT FROM GROUP ORD ...

  7. SQL查询中关键字的执行顺序

    SQL语句中的每个关键字都按照顺序往下执行,而每一步操作会生成一个临时表,最后的临时表就是最终结果: FROM <left_table>:from子句返回初始结果集 <join_ty ...

  8. sql 关键字解析

    sql 关键字解析 关键字 解析 union 注意:每个 SELECT 语句,必须列的数量.顺序相同,列的数据类型相似.即:1. UNION 内部的每个 SELECT 语句必须拥有相同数量的列:2. ...

  9. sql查询语句查询顺序

    一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOI ...

随机推荐

  1. Island Transport 【HDU - 4280】【最大流Dinic】

    题目链接 可以说是真的把时间卡爆了,不断的修改了好多次之后才A了,一直T一直T,哭了…… 可以说是很练时间优化了,不断的改,不断的提交,最后竟然是改了Dinic中的BFS()中,我们一旦搜索到了T之后 ...

  2. Emqtt集群搭建

    1 Emqtt简单搭建 1.1  介绍:EMQ:EMQ 2.0,号称百万级开源MQTT消息服务器,基于Erlang/OTP语言平台开发,支持大规模连接和分布式集群,发布订阅模式的开源MQTT消息服务器 ...

  3. servlet--获取类路径下资源

     context 获取真实路径(*****) 还可以使用ServletContext对象来获取Web应用下的资源,例如在hello应用的根目录下创建a.txt文件,现在想在Servlet中获取这个资源 ...

  4. jQuery基础--动画操作

    三组基本动画 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset=" ...

  5. .Net core 2.0 利用Attribute获取MVC Action来生成菜单

    最近在学习.net core的同时将老师的MVC5项目中的模块搬过来用,其中有一块就是利用Attribute来生成菜单. 一·首先定义Action实体 /// <summary> /// ...

  6. .net Datatable

    1. ROW remove vs delete datatable dt = new datatable() //fill 5 records for each row as datarow in d ...

  7. BZOJ 1040 [ZJOI2008]骑士 (基环树+树形DP)

    <题目链接> 题目大意: Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬.最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的 ...

  8. mpvue中的平台状态判断(H5网页 or 小程序)

    在开发微信小程序或者微信网页H5的时候,有时我们利用外部组件可能不兼容这两者,需要区分开来,可以在对应的mainjs中配置如下 let platform: try{ if(wx){ platform= ...

  9. (ACM模板)队列queue

    #include<iostream> #include<cstdio> #include<queue> using namespace std; struct po ...

  10. html5 图片墙

    代码实例: <!DOCTYPE html> <html> <head> <style> body,html{ padding:0;margin:0;wi ...