蓝色高科技网站模板,网站建设竞标书,wordpress远程后台设置,网站开发 足球球队信息前言#xff1a;
学习和使用数据库可以说是程序员必须具备能力#xff0c;这里将更新关于MYSQL的使用讲解#xff0c;大概应该会更新30篇#xff0c;涵盖入门、进阶、高级(一些原理分析);这一篇是内容较少#xff0c;主要讲解#xff1a;聚合函数和简要介绍sql语句执行过…前言
学习和使用数据库可以说是程序员必须具备能力这里将更新关于MYSQL的使用讲解大概应该会更新30篇涵盖入门、进阶、高级(一些原理分析);这一篇是内容较少主要讲解聚合函数和简要介绍sql语句执行过程虽然MYSQL命令很多但是自己去多敲一点到后面忘记了查一下就可以回忆起来使用了这一系列也是本人学习MYSQL做的笔记也是为了方便后面忘记查询参考资料尚硅谷、黑马、csdn和知乎博客欢迎收藏 关注本人将会持续更新。 文章目录 聚合函数(统计函数)MYSQL的运行顺序 课程使用数据文件: 后台私信获取。 聚合函数(统计函数) SQL 允许对表中的数据进行计算将一列数据作为一个整体进行纵向计算。 函数名作用MAX(column)返回某列的最低值没有则返回NULLMIN(column)返回某列的最高值没有则返回NULLCOUNT(column)返回某列的行数不包括 NULL 值COUNT(*)返回被选列行数包括NULLSUM(column)求和AVG(column)求平均值 注意
其中 COUNT 函数可用于任何数据类型 (因为它只是计数)而 SUM 、AVG 函数都只能对数值类型做计算MAX 和 MIN 可用于数值、字符串或是日期时间数据类型。
统计该企业员工数量
mysql select count(ename) from emp;
--------------
| count(ename) |
--------------
| 15 |
--------------
1 row in set (0.02 sec)统计该企业员工的平均工资
mysql select avg(sal) from emp;
-----------
| avg(sal) |
-----------
| 1988.3333 |
-----------
1 row in set (0.00 sec)查询该企业员工的最高工资
mysql select max(sal) from emp;
----------
| max(sal) |
----------
| 5000 |
----------
1 row in set (0.00 sec)查询该企业员工的最低工资
mysql select min(sal) from emp;
----------
| min(sal) |
----------
| 800 |
----------
1 row in set (0.00 sec)计算所有销售的工资之和
mysql select sum(sal) from emp where jobSALESMAN;
----------
| sum(sal) |
----------
| 5600 |
----------
1 row in set (0.00 sec)MYSQL的运行顺序
MYSQL中常见的关键字段如下
from从哪些表中筛选;on关联多表查询时去除笛卡尔积;where从表中筛选的条件;group by分组依据;having在统计结果中再次筛选;order by排序;limit分页。
这些在MYSQL中执行顺序是不一样的从书写顺序来看
SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ... LIMIT...注意 这些顺序不能颠倒。
在MYSQL执行语句过程中sql执行顺序是
FROM ...,...- ON - (LEFT/RIGNT JOIN) - WHERE - GROUP BY - HAVING - SELECT - DISTINCT - ORDER BY - LIMIT具体sql执行原理
SELECT 是先执行 FROM 这一步的。在这个阶段如果是多张表联查还会经历下面的几个步骤 首先笛卡尔积相当于得到虚拟表 vtvirtual table1-1通过 ON 进行筛选在虚拟表 vt1-1 的基础上进行筛选得到虚拟表 vt1-2添加外部行如果我们使用的是左连接、右链接或者全连接就会涉及到外部行也就是在虚拟表 vt1-2 的基础上增加外部行得到虚拟表 vt1-3。
当然如果我们操作的是两张以上的表还会重复上面的步骤直到所有表都被处理完为止这个过程得到是我们的原始数据。
原始数据得到后在经过where进一步判断得到新一张虚拟表然后在经过group by、having又得到新一张虚拟表接着就是select、distinct当然这个时候依然会生产虚拟表order by、limit也都会各自生成新的虚拟表。