MySQL的查询进阶
一.聚合函数
1.1count的使用:
select count(*)from 表名;它是用来统计个数的
1.2sum的使用:
select sum(列名)from 表名;它使用来算一个整合的
其他的都类似使用即可
二.group by的使用:
它是进行分组查询,且select字段必须是“分组依据字段”,若不是的则要用聚合函数才可以。
select 列名1,列名2 from 表名 group by 列名1;如果是这样的话那么就会报错因为列名2它不是分组依据的字段因此要写成select 列名1,sum(列名2) from 表名 group by 列名1;若是求和就这样不是的话换成其他的聚合函数即可。
三.having的使用:
当使用分组查询时若你要先对这个进行一轮判断再来分组则用where若你要先进行分组再进行判断那么则用having。
四.表的连接
4.1内连接
(表名分别为1,2且都有一个id列名)
当进行两个表的连接时:
1.先对它们进行笛卡尔积:select * from 1 join 2 ;
2.找到两个表的练级条件(1个):select * from 1 join 2 on 1.id=2.id;这样写成1.什么的好区分是哪个表的列名
3.看查询的列名的要求 :例若只让我查name这个列名则select name from 1 join 2 on 1.id=2.id;
4.根据题目再来进行相应改变即可。
4.2外连接(左连接和右连接)
select * from 1 left join 2 on 1.id=2.id;
select * from 1 right join 2 on 1.id=2.id;
4.3自连接
相当于要查询的是表中行与行之间的比较而我们SQL中是列与列的比较因此我们要对自己进行笛卡尔积(可以给自己的表用不同的别名然后连接起来即可)再来满足内连接的步骤即可。
4.4合并查询
就是将两个表的结果连接起来select * from 表名 union select * from 表名 ;这样子是将自动去重的若不想则将union换成union all。