单表:SQL语句关键字的执行顺序
表和数据:
-- 创建表
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 语句的执行顺序如下:
- 首先执行 FROM 子句,从 person 表 组装数据源的数据
- 执行 WHERE 子句,筛选 person 表中 name 不为 NULL 的数据
- 执行 GROUP BY 子句,把 person 表按 name 列进行分组
- 计算 max() 聚集函数,按 工资 求出工资中最大的一些数值
- 执行 HAVING 子句,筛选工资大于 5000 的人员
- 执行 ORDER BY 子句,把最后的结果按 Max(工资) 进行排序
- 最后执行 LIMIT 子句,进行分页查询
执行顺序:from -> where -> group by -> having -> select -> order by -> limit
单表:SQL语句关键字的执行顺序的更多相关文章
- MySQL数据库之单表查询中关键字的执行顺序
目录 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 2 执行顺序 3 关键字使用语法 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 select distinct from ...
- {MySQL的逻辑查询语句的执行顺序}一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析
MySQL的逻辑查询语句的执行顺序 阅读目录 一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析 一 SEL ...
- SQL语句完整的执行顺序(02)
这是对SQL语句完整的执行顺序(01)的补充: 数据库是mysql,使用的数据库表名称是my_student. 表的完整数据信息是: 完整语法是: Select [select选项] 字段列表[字段别 ...
- SqlServer中Sql语句的逻辑执行顺序
准备数据 Sql脚本如下,两张表,一张客户表Customers只包含customerid和city字段,一张订单表Orders包含orderid和customerid(关联Customers的cust ...
- SQL语句完整的执行顺序(01)
一.sql语句的执行步骤: 1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义. 2) 语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限. 3)视图转换,将涉 ...
- mysql 中sql语句关键字的书写顺序与执行顺序
书写顺序: select -> from -> where -> group by -> having -> order by 执行顺序: from -> wher ...
- sql 语句的先后执行顺序
例:查询语句中select from where group by having order by的执行顺序 一般以为会按照逻辑思维执行,为: 查询中用到的关键词主要包含六个,并且他们的顺序依次为 ...
- SQL中关键字的执行顺序
作为一个SQL新手,看到每种不熟悉的关键字时已经够迷茫了,可往往见到的语句关键字顺序还是各种各样,太难理解了.网上搜索了两篇文章,总结一下: 关于Sql关键字SELECT FROM GROUP ORD ...
- sql语句定义和执行顺序
sql语句定义的顺序 (1) SELECT (2)DISTINCT<select_list> (3) FROM <left_table> (4) <join_type&g ...
随机推荐
- struts2 一个CRUD的BaseAction
在struts2 in action中所见,这样封装后省去了大部分crud反复代码.尽管还不能理悟.先记下来. abstract class BaseAction extends ActionSupp ...
- hdu 1248 寒冰王座(暴力)
寒冰王座 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- ADT 压缩包 R23.0.0
http://pan.baidu.com/s/1qWLjs2w
- framework/base子目录
framework/base下各子目录 ~/src/aosp_master/frameworks $ tree base/ -L 1 base/ ├── Android.bp ├── Android. ...
- Codeforces--622A--Infinite Sequence(数学)
Infinite Sequence Crawling in process... Crawling failed Time Limit:1000MS Memory Limit:26214 ...
- P5058 [ZJOI2004]嗅探器 tarjan割点
这个题是tarjan裸题.最后bfs暴力找联通块就行.(一开始完全写错了竟然得了70分,题意都理解反了...这数据强度...) 题干: 题目描述 某军搞信息对抗实战演习,红军成功地侵入了蓝军的内部网络 ...
- bzoj 1078 [SCOI2008]斜堆 —— 斜堆
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1078 考察斜堆的性质: 一个点如果没有左子树,也一定没有右子树: 看了这篇精美的博客:htt ...
- Spark SQL中 RDD 转换到 DataFrame (方法二)
强调它与方法一的区别:当DataFrame的数据结构不能够被提前定义.例如:(1)记录结构已经被编码成字符串 (2) 结构在文本文件中,可能需要为不同场景分别设计属性等以上情况出现适用于以下方法.1. ...
- PCB genesis加尾孔实现方法
一.为什么增加尾孔呢 看一看下图在panel中增加尾孔的效果;如下图所示,主要有2点原因. 1.孔径大小测量 假设如果不增加尾孔,要检测孔径大小是否符合要求,那么QA检测会选择最后钻的孔进大小进行测量 ...
- [Swift通天遁地]四、网络和线程-(4)使用Alamofire实现网络请求
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...