什么是函数?
MySQL函数,是一种控制流程函数,属于数据库用语言。
函数分为日期和时间函数,字符串函数,数学函数,聚合函数,自定义函数。
常用函数举例
聚合函数举例
什么是聚合函数
聚合函数作用于一组数据,并对一组数据返回一个值。
聚合函数类型
- AVG() 返回指定列的平均值
- SUM() 返回指定列的所有值之和
- MAX() 返回指定列的最大值
- MIN() 返回指定列的最小值
- COUNT() 返回指定列中非Null值的个数
- Group_concat() 返回由属于一组的列值连接而成的
常与聚合函数搭配的group by
WHERE和HAVING的对比
区别1:WHERE 可以直接使用表中的字段作为筛选条件,但不能使用分组中的计算函数作为筛选条件;HAVING 必须要与 GROUP BY 配合使用,可以把分组计算的函数和分组字段作为筛选条件。
这决定了,在需要对数据进行分组统计的时候,HAVING 可以完成 WHERE 不能完成的任务。这是因为,在查询语法结构中,WHERE 在 GROUP BY 之前,所以无法对分组结果进行筛选。HAVING 在 GROUP BY 之后,可以使用分组字段和分组中的计算函数,对分组的结果集进行筛选,这个功能是 WHERE 无法完成的。另外,WHERE排除的记录不再包括在分组中。
区别2:如果需要通过连接从关联表中获取需要的数据,WHERE 是先筛选后连接,而 HAVING 是先连接后筛选。
这一点,就决定了在关联查询中,WHERE 比 HAVING 更高效。因为 WHERE 可以先筛选,用一个筛选后的较小数据集和关联表进行连接,这样占用的资源比较少,执行效率也比较高。HAVING 则需要先把结果集准备好,也就是用未被筛选的数据集进行关联,然后对这个大的数据集进行筛选,这样占用的资源就比较多,执行效率也较低。
慢查询
什么是慢查询 ?
Mysq对慢查询的操作
索引
什么是索引
方介绍索引是帮助MySQL高效获取数据的数据结构。简单来讲,数据库索引就像是书前面的目录,能加快数据库的查询速度。事实上,索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据。
索引的分类
索引的缺点
索引分类与语法举例
主键索引:
唯一索引
常规索引
全文索引
语法:
索引的管理方式:
索引的使用原则
--需背,详见pdf