查询关键字group by(分组)
select * from emp group by post; 将表emp的内容按post分组
想要实现上述的校验机制需要设置严格模式
set global sql_mode = ‘strict_trans_table,only_full_group_by‘;
聚合函数
max() 最大值
min() 最小值
sum() 求和
count() 计数
avg() 平均数
将聚合函数放到指定元素后面就能对元素进行操作
select post,max(salary) from emp group by post; 获取每个部门的最高工资
select post,min(salary) from emp group by post; 获取每个部门的最低工资
select post,sum(salary) from emp group by post; 获取每个部门的工资总和
select post,count(id) from emp group by post; 获取每个部门的员工人数
select post,gruop_concat(name,‘:‘,salary) from emp group by post; 查询分组后的部门名称和每个部门下所有的员工姓名和薪资 select post,avg(salary) from emp where age>30 group by post; 统计各部门年龄30岁以上的员工的平均薪资
分组注意事项
1.关键字where与group by同时出现的情况下,group by必须在where之后
2.聚合函数必须在分组之后使用不能在where里面使用
3.当一张表没有分组的时候整张表其实就是一组
查询关键字之having(分组)
having的作用跟where一样,也是用来筛选数据
不同之处是where分组之前筛选,having分组之后筛选
查询关键字distinct
distinct用于去重,去重的条件是数据完全一样,尤其是带有主键的数据肯定不存在重复的概念
select distinct sex from emp; 删除sex列的重复项
查询关键字之order by(排序)
select * from emp order by salary; 默认升序员工薪资
升序关键字asc,降序关键字desc
select * from emp order by age asc,salary desc;
先按照年龄升序,再按照薪资降序
查询关键字limit(限制展示条数)
select * from emp limit 5; 只展示前5条
select * from emp limit 5,5; 展示从第5条之后的5条
查询关键字regexp(正则筛选)
regecxp后接正则表达式
as 给指定字段起别名
concat 将多个列拼接(分组之前使用)
group_concat 将多个列拼接(分组之后使用)
整型数据可以在数据库中四则运算
原文:https://www.cnblogs.com/songyinghao/p/13729359.html