MySQL学习(三)聚合函数、表关联
一、聚合函数
1、限制查询select * from user limit 3;(当一个表内数据特别多是,全量查询容易导致服务器崩死,所以使用limit来限制查询)
2、排序:order by +排序字段(默认是asc,可写可不写,是升序,倒序是desc)
①、升序:select * from user order by age (asc);
②、倒序:select * from user order by age desc;
③、字母排序规则遵循ascil码:把字母处理成数字,实现从小到大的排序(可用python工具查询具体代表的数字)
A、怎么查询(控制台输入python,前提是搭建了python环境,然后输入order(“字母/..”))
B、排序规则:在几个字母串里面,先按照第一位排序,如果第一位一样,那么就以此类推,按第二个开始排序。
3、查询
①、查询总数(count)select count(1) from user;
②、查询总和(sum)select sum(age) as 总和 from user;
③、查询平均(averge)select avg(age) as 平均年龄 from user;
例如:
A: 过滤出工平均工资在100000以上的员工,并且只展示9条数据(薪资表是salaries)
命令:select emp_no,avg(salary) avg from salaries group by emp_no having avg>=100000 limit 9;
B: 过滤出工平均工资在100000以上的员工,并且排序展示9条数据;
从小到大命令:select emp_no,avg(salary) avg from salaries group by emp_no having avg>=100000 order by avg limit 9;
从大到小命令:select emp_no,avg(salary) avg from salaries group by emp_no having avg>=100000 order by avg desc limit 9;
④、最大最小(min max)
A: select max(age) as 最大年龄 from user;
B: select min(age) as 最小年龄 from user;
c: 查询薪资表中的总数、平均工资、最大工资、最小工资。
命令:select sum(salary) 总和,avg(salary) 平均薪资,max(salary) 最大薪资,min(salary) 最小薪资 from salaries;
D :最大工资和最小工资差多少(思路:先获取,在加减)
命令、结果:
⑤、去重:distinct(select distinct name from user;)
⑥、查询表内男女各自的总数 select sex,count(sex) from persion group by sex;
⑦、在查询男女各自总数的基础上筛选总数大于一的select sex,count(sex) from persion group by sex having 总数>1;
二、表关联查询
1、内连接:inner join
⼜叫内连接的部分,主要是获取两个表中字段匹配关系的表。查询关联字段共同拥有的数据
①、 例如: select * from good inner join shop on good.id=shop.good_id; (查询good表和shop表的内连接部分)
②、例如:
A: 指定查询三个表的内容,查询good表的name、shop表的name、shop表的level;
三个表的信息、关联字段信息是:
命令就是:select good.name,shop.name,shop.level from good inner join shop on good.id=shop.good_id;
B:关联good、shop、city三个表
表信息:
shop通过good_id与good表关联,city表通过shop_id与shop表关联
那么命令就是:select * from good inner join shop on good.id=shop.good_id inner join city on shop.id=city.shop_id;
C: 查询good表的address和city表的name(思路:由于city表与good表无字段链接,那么应该一步一步关联,找到关系链进行关联查询,将其结果信息输出在一起)
命令:select good.address,city.name from good inner join shop on good.id=shop.good_id inner join city on shop.id=city.shop_id;
2、select可用作算术表达: