mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

单表查询

 

select

 

建个表

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

1、查询表中所有学生的信息

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

2、查询表中所有学生的姓名和对应的英语成绩

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

3、过滤表中重复数据

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

4、在所有学生分数上添加10分特长分

下面方式并没有改变底层的数据记录,这只是在查询的时候让快照显示这样的结果而已。

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

5、统计每个学生的总分

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

6、使用别名来显示学生总分

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

 

where

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

1、查询姓名为张飞的学生成绩

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

2、查询英语成绩大于90分的学生

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

3、查询总分大于270的同学

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

4、查询英语成绩在80-100之间的学生

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

5、查询数学成绩为75、76、77的同学

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

6、查询所有姓张的学生的成绩

  • %——表示0和或多个字符
  • _——表示1个字符

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

7、查询数学>80,语文>80的同学

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

 


聚合函数

 

count函数——用于统计行数

 

1、统计一个班级拥有多少学生

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

2、统计有多少个学生的数学成绩大于90分

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

3、统计总分大于270的人有几个

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

 

 

sum——将符合条件的某列的和值

 

1、查询所有数学成绩的总和

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

2、统计一个班级数学英语语文成绩的总和

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

 

 

avg——求平均值

 

求一个班级数学成绩的平均值

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

 

 

MAX/MIN——求符合条件的最大值和最小值

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

 

 

 


分组查询

 

建个表

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

 

group by

 

1、将商品按照名字分组,显示每一类商品的总价(因此用到了聚合函数sum)

只有在分组之后,可以在select里面使用聚合函数

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

 

having——进行分组之后的过滤操作

 

查询总价大于100元的商品的名称

where只能进行分组前的过滤,分组后的过滤工作只有having才能做

where语句中不允许使用聚合函数,having语句中允许使用聚合函数

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

 

查找单价小于100,总价大于100的商品

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

 

limit——查询部分数据

 

取前两条数据

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)

 

将商品按照加个降序排序,输价格第三高的商品

可以利用limit 2,1 来获取第三行数据——limit 2,1 表示取从第2行开始的第1行数据

mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)