表和数据:

-- 创建表
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. tomcat的localhost_access_log日志文件

    一.服务器打印日志要关闭hibernate的日志,首先要把hibernate.show_sql设置为false;然后设置log4j.properties. # Control logging for ...

  2. js将图片转为base64编码,以字符串传到后台存入数据库

    (前台在中approve_edit.html中,后台不变) 链接参考:http://www.cnblogs.com/Strom-HYL/p/6782176.html 该链接文中并没有用到easyUI的 ...

  3. Codeforces Round #211 (Div. 2)B. Fence

    B. Fence time limit per test 1 second memory limit per test 256 megabytes input standard input outpu ...

  4. 深入理解7816(2)---关于ATR【转】

    本文转载自:http://blog.sina.com.cn/s/blog_4df8400a0102vcrk.html 深入理解7816(2)---关于ATR 智能卡(此处主要指接触式CPU卡)本身始终 ...

  5. tiny4412 裸机程序 九、串口排查驱动原因及字符图片显示【转】

    本文转载自:http://blog.csdn.net/eshing/article/details/37410571 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   一 ...

  6. JAVA Swing 组件演示***

    下面是Swing组件的演示: package a_swing; import java.awt.BorderLayout; import java.awt.Color; import java.awt ...

  7. SpringBoot 启动定时任务

    再项目中大多会使用定时任务来定时执行一些操作,如:文件迁移,备份等等.今天就来跟大家一起学习下如何在SpringBoot中创建定时任务. 1.新建SpringBoot项目,或在原有的项目上添加(不知道 ...

  8. 使用GitHub(转载)

    转自:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137628548491 ...

  9. Unity 代码改宏定义

    两个函数 PlayerSettings.GetScriptingDefineSymbolsForGroup(targetGroup); //所有宏定义 ; 分割 PlayerSettings.SetS ...

  10. [Swift通天遁地]九、拔剑吧-(1)实现在程序中跳转到微信、App Store、地图

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...