1.聚合函数
(1)使用聚合函数查询出了person表中salary工资字段的所有工资和
select sum(salary) from person; -- 使用聚合函数查询出了person表中salary工资字段的所有工资和
2.分组查询
(1)分组查询person表中的dept_id字段,看有哪几个,同样dept_id值的被分为一组
select dept_id from person GROUP BY dept_id; -- 分组查询person表中的dept_id字段,看有哪几个,同样dept_id值的被分为一组
(2)分组查询person表的每个dept_id部门字段的salary工资和
select sum(salary), dept_id from person GROUP BY dept_id; -- 分组查询person表的每个dept_id部门字段的salary和
(3)查询部门工资和大于20000的部门有哪些。GROUP BY 想要和条件一起用则必须用having,不能where,但是having和where的意思一样。as是起别名。
select sum(salary) as w, dept_id from person GROUP BY dept_id HAVING w > 20000; -- 查询部门工资和大于20000的部门。GROUP BY 想要和条件一起用则必须用having,不能where,但是having和where的意思一样。as是起别名
(4)查询每个部门的工资和,并且看看部门都有谁.用到GROUP_CONCAT函数将name字段列出来
select avg(salary) as w, dept_id, GROUP_CONCAT(name)from person GROUP BY dept_id; -- 查询每个部门的工资和,并且看看部门都有谁.用到GROUP_CONCAT函数将name字段列出来
3.分页查询
(1)limit就是分页的关键字.LIMIT后面跟的参数1表示起始位置(从哪条开始查),第二个参数表示每页查多少条
select * from person limit 0,4; -- limit就是分页的关键字.LIMIT后面跟的参数1表示起始位置(从哪条开始查),第二个参数表示每页查多少条
4.SQL语句关键字的执行顺序
select name, max(salary) -- 5 执行select操作,将分组后的name,工资和大于5000的记录查出来from person -- 1 先执行from,查person表where name is not NULL -- 2 在执行where进行条件筛选出name字段不为空的GROUP BY `name` -- 3 在执行group by对name字段进行分组,相同名字的分为一组HAVING max(salary) > 5000 -- 4 聚合函数计算出来salary字段的最大值后,having条件执行筛选出工资和大于5000的ORDER BY MAX(salary) -- 6 将select查询出来的记录,执行order by进行排序,默认是asc正序排序。limit 0, 5 -- 7 order by排序好后,只要前5条数据
5.正则表达式