单行函数_流程函数
要点: 流程处理函数可以根据不同的条件 执行不同的处理流程 可以在SQL语句中实现不同的条件选择,MySQL中的流程处理函数主要包括if() ifnull() 和 case() 函数
多行函数_聚合函数
和单行函数的区别: 单行函数是作用在每一行 最终结果可能是多行结果
多行函数相当于开启了上帝视角 是在宏观的角度去统计数据 最终的结果只有一条数据
count(列名) 是统计那一列非NULL值出现的次数 count(*/1)用来统计表格有几行
注意: 聚合函数直接不能嵌套使用 聚合函数碰到NULL是不计数 不处理的
统计表的行数用count(1) 或者 count(*) 统计某一列出现的次数用 count(列名)
高级查询处理_分组查询
注意: 分完组只能查询特性列和聚合函数 having是分组后的条件 where是分组前的条件
having 后面的条件一般是聚合函数的比较 where后面一般是列名的比较
having由于是分组后的操作 所以可以复用selected列 而where不能复用
高级查询处理_排序
排序不影响结果的条数 语法: select 列1 列2... 函数 from table where condition order by 排序列 asc|desc ...
细节: 多列排序 只有上一列相同 第二列才会生效
高级查询处理_数据切割(分页查询)
切割查询是真的会影响结果 其最主要的目的是做分页
语法:limit 偏移量,要查询的行数 当偏移量为0时可以省略 eg: limit(0,2) 即 limit(2)
细节: limit 10 从头开始切割10条 如果一共只有8行数据 就会切割8行
limit关键字真的会影响数据 limit放在select语句的最后 它不是一个方法 不要带()
前端会传递 page(第几页) 和 size(每一页几条数据) 通过公式: limt (page-1)*size,size 来分页