依旧准备好三张有关联的表格:学生表t_student,班级表t_class,成绩表t_grade
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yY1gzM1EDN2UWZzETYjRzM3YmZyMDOzU2YmhjZjNDOk9CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
回顾:多表联查,select a.id,a.sname,b.cname,c.chinese,c.math,c.english from tstudent a a join t_class b on a.cid=b.id join t_grade c on c.sid = a.id where c.chinese>100
问:假设统计以班级为分组,两个班级的平均分
输入命令:select b.cname,avg(c.chinese+c.math+c.english) a from tstudent a a join t_class b on a.cid=b.id join t_grade c on c.sid group by b.cname;
问:查询出男女的人数和男女中最大的年龄
问:查询出同名的人
问:统计出每个班的语文成绩大于100分的同学的语文平均分,并只显示平均分高于110的班级
正序:asc(可省略) 倒序:desc
问:将学生表的学生按照年龄倒序排序
如:select * from t_student limit 0,5
0,代表从哪条开始显示,5,表示显示多少条(0可省略)
问:统计出每个班语文平均分成绩大于100的同学的班级语文平均分,然后显示出平均分最高的班级
问:30岁以内显示青年,30-60显示壮年,60以上显示老年
剩余可以用else
1,内连接(join): 显示的数据是取自两表的交集(只显示两表关联的上的字段)
2,外连接:取自两表的并集
左连接(left join):显示左表的所有数据和两表关联上的数据
右连接(right join):显示右表的所有数据和两表关联上的数据
六,嵌套查询
通过 把查询结果作为表/条件/列 进行查询
如: