mysql常用操作汇总(五)

时间:2022-06-01 16:59:26

数据结构:

mysql常用操作汇总(五)

1.汇总函数:

avg(), count(), max(), min(), sum()

select avg(price), count(price), max(price), min(price), sum(price) from shopping;

mysql常用操作汇总(五)

2.数据分组:

mysql提供了数据分组的方法,group by对列数据进行分组统计

select price,count(price) from shopping group by price; 

mysql常用操作汇总(五)

3.过滤分组,行的过滤可以使用where,having,分组的过滤只能使用having,不能用where

select price,count(price) from shopping group by price having price='66'; 

mysql常用操作汇总(五)

注意:

1.关键字使用顺序

select xxx from xxx group by xxx order by xxx limit xxx;

select xxx from xxx where xxx order by xxx limit xxx;

2.group by的功能是进行分组,order by 是排序,各司其职,group by的排序不靠谱

4.联结表(联结表是对两个及以上的表进行筛选)

select shopping.name,custom.name,custom.id from shopping,custom where shopping.id = custom.id order by custom.id;

可以使用表别名降低select语句的长度 select a.name,b.name b.id from shopping as a ,custom as b where a.id=b.id order by b.id;

mysql常用操作汇总(五)

如果没有where的筛选规则,则根据笛卡儿积的规则返回两个表的m*n数据组合

select shopping.name,custom.name,custom.id from shopping,custom;

mysql常用操作汇总(五)

mysql还可以通过inner join ... on的方式进行联结表的查询

select shopping.name as shopping_name, custom.name as custom_name, custom.id as custom_id from shopping inner join custom on shopping.id=custom.id order by custom.id;

还可以使用别名,降低select语句的长度select a.name,b.name,b.id from shopping as a inner join custom as b on a.id=b.id order by b.id;

mysql常用操作汇总(五)

注意:

表别名和列别名不一样,表别名不会作为真实数据返回,列别名会做为真实的字段返回

5.组合查询

在需要获取两个表中同样的数据时,可以使用组合查询的方式,关键字为union

select name,id from shopping union select name,id from custom;

mysql常用操作汇总(五)

同样也可以在一个表里面使用组合查询,在筛选条件不同时可以使用

select name,id from shopping where id<='2' union select name,id from shopping where id='5';

mysql常用操作汇总(五)

注意:使用组合查询时,返回的结果必须是一样的,必须对同一个表或者不同的表返回查询结果的字段必须相同