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可用作算术表达:

 

 

 

 

posted @ 2022-08-28 21:05  陌上归程  阅读(183)  评论(0编辑  收藏  举报