mysql的语句执行顺序
2016-07-07 09:00
417 查看
mysql语句
select xxx from xxx on xxx where xxx having xxxx
在网上查了半天,发现下面的说法是最能符合结果的解释:
1、from子句组装来自不同数据源的数据;
2、where子句基于指定的条件对记录行进行筛选;
3、group by子句将数据划分为多个分组->便于后续聚合函数计算;
4、执行select语句,使用聚集函数进行计算,再执行distinct, distinct一般放在select最后,(聚合函数忽略null值), count
(distinct(id))这种先执行distinct再聚合;
5、使用having子句筛选分组;
6、计算所有的表达式;
7、使用order by对结果集进行排序。
因为 where 是在select之前进行执行的 而 having是在select之后进行执行的 所以 having中可以使用别名进行条件过滤
select xxx from xxx on xxx where xxx having xxxx
在网上查了半天,发现下面的说法是最能符合结果的解释:
1、from子句组装来自不同数据源的数据;
2、where子句基于指定的条件对记录行进行筛选;
3、group by子句将数据划分为多个分组->便于后续聚合函数计算;
4、执行select语句,使用聚集函数进行计算,再执行distinct, distinct一般放在select最后,(聚合函数忽略null值), count
(distinct(id))这种先执行distinct再聚合;
5、使用having子句筛选分组;
6、计算所有的表达式;
7、使用order by对结果集进行排序。
因为 where 是在select之前进行执行的 而 having是在select之后进行执行的 所以 having中可以使用别名进行条件过滤
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜
- MySQL 备份与恢复