sql关键词执行的先后顺序是:首先执行from语句;然后是where语句,group by语句;接着是having语句;最后是order by语句。

【推荐课程:MySQL教程】

sql关键词执行顺序

例:select m.* from(select t.*,rownum r from

(select id,name,e.username,e.realname from departments d ,employees e where d.manager=e.username(+)

order by id desc ) t where rownum<=? ) m where r>?

select m.*(select t.*,t.rownum r from(

select a,b,c,d from table1 order by a desc

) t where rownum < = ? ) m

where r > ?

标准的 SQL 的解析顺序为

(1)FROM 子句, 组装来自不同数据源的数据

(2)WHERE 子句, 基于指定的条件对记录进行筛选

(3)GROUP BY 子句, 将数据划分为多个分组

(4)使用聚合函数进行计算

(5)使用 HAVING 子句筛选分组

(6)计算所有的表达式

(7)使用 ORDER BY 对结果集进行排序

在学生成绩表中 (暂记为 tb_Grade), 把 "考生姓名"内容不为空的记录按照 "考生姓名" 分组, 并且筛选分组结果, 选出 "总成绩" 大于 600 分的

SQL 语句为:select 考生姓名, max(总成绩) as max总成绩

from tb_Grade

where 考生姓名 is not null

group by 考生姓名

having max(总成绩) > 600

order by max总成绩

在上面的示例中 SQL 语句的执行顺序如下:

(1) 首先执行 FROM 子句, 从 tb_Grade 表组装数据源的数据

(2)执行 WHERE 子句, 筛选 tb_Grade 表中所有数据不为 NULL 的数据

(3) 执行 GROUP BY 子句, 把 tb_Grade 表按 "学生姓名" 列进行分组

(4)计算 max() 聚集函数, 按 "总成绩" 求出总成绩中最大的一些数值

(5) 执行 HAVING 子句, 筛选课程的总成绩大于 600 分的.

(6) 执行 ORDER BY 子句, 把最后的结果按 "Max 成绩" 进行排序.

总结:以上就是本篇文章的全部内容了,希望对大家有所帮助。

mysql的关键词使用顺序_sql关键词执行先后顺序是什么相关推荐

  1. mysql limit 执行顺序_SQL语句执行顺序及MySQL中limit的用法

    一. SQL语句执行顺序及MySQL中limit的用法 执行顺序:from... where...group by... having.... select ... order by... limit ...

  2. mysql分析sql语句性能_sql语句执行性能分析

    explain 根据上面提到的explain去比较,就可以得出结果了 mysql> explain select * from users limit 1000,20; +----+------ ...

  3. mysql命令书写顺序_MySQL SQL语句书写顺序和执行顺序

    SQL语句书写顺序和执行顺序 (7) SELECT (8) DISTINCT (1) FROM (3) JOIN (2) ON (4) WHERE (5) GROUP BY (6) HAVING (9 ...

  4. 悟空分词与mysql结合_中文分词与关键词提取实践小结

    本文基于题库查重需求实现过程及<NLP自然语言处理原理与实践>学习过程总结得出.定有不足之处,恳请指出. 基本概念 评价指标 一般,中文分词从Precision.Recall.F-scor ...

  5. mysql一条语句是如何被执行的——带你了解mysql语句执行内部顺序

    文章目录 写在前面 MySQL基本架构 超详细架构图 连接器 查询缓存 解析器 MySQL 8.0对Parser所做的改进 优化器 执行器 存储引擎 SQL语句执行时间分析 参考资料 写在前面 sel ...

  6. mysql 执行顺序 SQL语句执行顺序分析

    最近在做一个数据库的大作业,算是复习了下MySql里面比较复杂的一些语句的用法,如Left Join之类的.在这里就不对具体语法进行记录了,希望能在以后经常用到,而不是隔好长时间用一次.在这里就记录下 ...

  7. mysql latid1_【转】mysql触发器的实战经验(触发器执行失败,sql会回滚吗) | 学步园...

    1   引言Mysql的触发器和存储过程一样,都是嵌入到mysql的一段程序.触发器是mysql5新增的功能,目前线上凤巢系统.北斗系统以及哥伦布系统使用的数据库均是mysql5.0.45版本,很多程 ...

  8. mysql 查询优化器跟踪_3. select语句执行过程-优化器

    1.有哪些 2.开启追踪 优化器追踪默认是关闭的 2.1 开启 SHOW VARIABLES LIKE 'optimizer_trace'; set optimizer_trace='enabled= ...

  9. 关键词分析工具-免费关键词分析软件

    选择正确的关键词对于搜索引擎优化至关重要.使用正确的关键词可以让你的结果页或广告页展现给正确的受众.(避免非目标受众点击造成的经济损失,以及提高自然搜索的意图匹配)每个产出的关键词都可以直观的了解,突 ...

最新文章

  1. [轉]c#简单调用DELPHI DLL封装窗体
  2. Zookeeper分布式一致性原理(九):Zookeeper分布式应用
  3. Ubuntu 12.10下配置Web服务器详细教程
  4. 字典对中文字符串进行排序 python_Python基础入门:字符串和字典
  5. 空指针:从 0 到 NULL,再到 nullptr
  6. 【centos7】添加开机启动服务/脚本
  7. 漫画算法:辗转相除法是什么鬼
  8. c/c++整理--c++面向对象(1)
  9. 安徽高中计算机会考知识点,安徽高中会考语文知识点
  10. java8简化的可变参数调用,Java8新特性--方法引用
  11. 创建表结构相同的表,表结构相同的表之间复制数据,Oracle 中 insert into XXX select from 的用法...
  12. linux 装nano命令,vim、nano在命令行上如何编辑文件
  13. angular-代码段
  14. sdp ddp内存怎么分_小鑫课堂 | 多余的内存不要浪费,拿来做硬盘吧
  15. 异速联客户端可以删除服务器文件,异速联客户端怎么连接服务器
  16. 英语secuerity证券
  17. 特征筛选利器:详解T-test(T检验)原理、参数分析、单\双尾检验选择
  18. 如何在Windows下使用DOS命令进入MySQL数据库?
  19. 进入docker容器的方法
  20. 节约粮食海报|节约粮食就是对袁隆平院士最好的怀念!

热门文章

  1. Java Web 相关面试题总结
  2. Win8 Metro(C#)数字图像处理--2.66FloodFill算法
  3. 美国旧金山之行第一天
  4. Servlet -- 重定向
  5. struts2中解决下载文件名中文乱码问题
  6. 【效率】如何有效提问
  7. mysql之日志和mysqlbinlog工具的使用
  8. Caused by: java.lang.NoSuchMethodException: onClick_Flashlight [class android.view.View]
  9. JVM中的Stack和Heap1
  10. 数学之美系列二 -- 谈谈中文分词