表和数据:

-- 创建表
CREATE TABLE `person` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`age` tinyint(4) DEFAULT '',
`gender` enum('男','女') NOT NULL DEFAULT '女',
`salary` decimal(10,2) NOT NULL DEFAULT '2500.00',
`hire_date` date NOT NULL,
`dept_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) -- 创建数据
-- 教学部
INSERT INTO `person` VALUES ('', 'A', '', '女', '53000.00', '2010-06-21', '');
INSERT INTO `person` VALUES ('', 'B', '', '男', '8000.00', '2011-02-21', '');
INSERT INTO `person` VALUES ('', 'C', '', '男', '6500.00', '2015-06-21', '');
INSERT INTO `person` VALUES ('', 'D', '', '女', '6680.00', '2014-06-21', '');
-- 销售部
INSERT INTO `person` VALUES ('', 'E', '', '女', '3000.00', '2015-02-21', '');
INSERT INTO `person` VALUES ('', 'F', '', '女', '2000.00', '2018-01-30', '');
INSERT INTO `person` VALUES ('', 'G', '', '女', '2000.00', '2018-02-27', '');
INSERT INTO `person` VALUES ('', 'H', '', '女', '2000.00', '2015-06-21', '');
-- 市场部
INSERT INTO `person` VALUES ('', 'I', '', '女', '4000.00', '2014-07-21', '');
INSERT INTO `person` VALUES ('', 'J', '', '女', '4000.00', '2015-07-15', '');
-- 人事部
INSERT INTO `person` VALUES ('', 'K', '', '女', '5000.00', '2014-06-21', '');
-- 鼓励部
INSERT INTO `person` VALUES ('', 'L', '', '女', '1000000.00', '2018-02-21', null);

SQL语句关键字的执行顺序:

-- 查询:姓名不同人员的最高工资,并且要求工资大于5000元,同时按最大工资进行排序并取出前5条
select name, max(salary)
from person
where name is not null
group by name
having max(salary)>5000
order by max(salary)
limit 0,5;

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

  1. 首先执行 FROM 子句,从 person 表 组装数据源的数据
  2. 执行 WHERE 子句,筛选 person 表中 name 不为 NULL 的数据
  3. 执行 GROUP BY 子句,把 person 表按 name 列进行分组
  4. 计算 max() 聚集函数,按 工资 求出工资中最大的一些数值
  5. 执行 HAVING 子句,筛选工资大于 5000 的人员
  6. 执行 ORDER BY 子句,把最后的结果按 Max(工资) 进行排序
  7. 最后执行 LIMIT 子句,进行分页查询

执行顺序:from -> where -> group by -> having -> select -> order by -> limit

单表:SQL语句关键字的执行顺序的更多相关文章

  1. MySQL数据库之单表查询中关键字的执行顺序

    目录 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 2 执行顺序 3 关键字使用语法 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 select distinct from ...

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

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

  3. SQL语句完整的执行顺序(02)

    这是对SQL语句完整的执行顺序(01)的补充: 数据库是mysql,使用的数据库表名称是my_student. 表的完整数据信息是: 完整语法是: Select [select选项] 字段列表[字段别 ...

  4. SqlServer中Sql语句的逻辑执行顺序

    准备数据 Sql脚本如下,两张表,一张客户表Customers只包含customerid和city字段,一张订单表Orders包含orderid和customerid(关联Customers的cust ...

  5. SQL语句完整的执行顺序(01)

    一.sql语句的执行步骤:  1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义.  2) 语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限.  3)视图转换,将涉 ...

  6. mysql 中sql语句关键字的书写顺序与执行顺序

    书写顺序: select -> from -> where -> group by -> having -> order by 执行顺序: from -> wher ...

  7. sql 语句的先后执行顺序

    例:查询语句中select from where group by having order by的执行顺序 一般以为会按照逻辑思维执行,为: 查询中用到的关键词主要包含六个,并且他们的顺序依次为  ...

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

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

  9. sql语句定义和执行顺序

    sql语句定义的顺序 (1) SELECT (2)DISTINCT<select_list> (3) FROM <left_table> (4) <join_type&g ...

随机推荐

  1. 【二】注入框架RoboGuice使用:(Your First View Injection)

    上一篇我们简单的介绍了一下RoboGuice的使用([一]注入框架RoboGuice使用:(A brief example of what RoboGuice does)),今天我们我看下View的注 ...

  2. R环境中的工作空间(workspace)

    工作空间(workspace)就是当前R的工作环境,它储存着全部用户定义的对象(向量.矩阵.函数.数据框.列表) . 在一个R会话结束时,你能够将当前工作空间保存到一个镜像中.并在下次启动R时自己主动 ...

  3. elasticsearch 布尔过滤器 游标查询 Scroll

    组合过滤器 | Elasticsearch: 权威指南 | Elastic https://www.elastic.co/guide/cn/elasticsearch/guide/current/co ...

  4. 使用VS2005安装和编译QT4.53源码

    学习Qt,当然是QT4好.可是装了4.86以后,网上下载的书中的例子大多无法直接用VS执行(个人不喜欢用QT Creator),即打开pro转换的时候出错(我也懒的研究为什么出错了).看了一下发布时间 ...

  5. web中servletcontext和applicationContext

    参看:http://www.cnblogs.com/isisbenben/p/5594323.html servletContext和ApplicationContext有什么区别 servletCo ...

  6. JavaScript Patterns 2.7 Avoiding Implied Typecasting

    Dealing with == and === false == 0 or "" == 0 return true. always use the === and !== oper ...

  7. 【Bzoj2260】【Bzoj4349】商店购物 & 最小树形图

    目录 List Bzoj 2260 商店购物 Description Input Output Sample Input Sample Output Bzoj 4349 最小树形图 Descripti ...

  8. 71.Ext.form.ComboBox 完整属性

    转自:https://blog.csdn.net/taotaoqi/article/details/7409514 Ext.form.ComboBox 类全称: Ext.form.ComboBox 继 ...

  9. FSDataInputStream对象 读取数据

  10. group by 和 select

    group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面.