SQL单表查询总结 2020.7.27

1.语法

select
	字段列表
from
	表明列表
where
	条件列表
group by
	分组字段
having
	分组之后的条件
order by
	排序
limit
	分页限定

下面的操作都是在这个student表上进行的:
在这里插入图片描述

2.基础查询

查询每个学生的数学成绩,英语成绩和总分
SELECT NAME,math,IFNULL(english,0) AS english,math+IFNULL(english,0) AS '总分' FROM student;

在这里插入图片描述

3.条件查询

查询数学成绩在60到100之间的学生和其成绩

SELECT 
NAME,math 
FROM 
student 
WHERE 
math BETWEEN 60 AND 100;

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.分组查询

聚合函数:将一列作为一个整体,进行纵向的计算
1.count 计算个数
2.max 计算最大值
3.min
4.sum
5.avg 计算平均值

注意:
1.分组之后查询的字段:分组字段和聚合函数,其它字段没有意义
2.where 和 having 的区别?

  • a. where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会查询出来
  • b. where后不可以跟聚合函数,having可以进行聚合函数判断

查询男女同学的平均分

SELECT sex,AVG(math+english)AS AVG FROM student GROUP BY sex;

在这里插入图片描述
查询男女同学的平均分和人数

SELECT 
sex,AVG(math+english)AS AVG,COUNT(id) AS COUNT 
FROM 
student 
GROUP BY 
sex;

在这里插入图片描述
按照性别分组。分别查询男、女学生的平均分,人数 要求:分数低于70分的人,不参与分组,分组之后。人数要大于2

SELECT 
sex,AVG(math+english)AS '平均分',COUNT(id) AS '人数' 
FROM 
student 
WHERE 
math > 70 
GROUP BY 
sex 
HAVING 
COUNT(id)>2;

5.排序查询

语法:order by 排序字段1 排序方式1, 排序字段2 排序方式2
排序方式:
ASC:升序 默认
DESC:降序
注意:当有多个排序条件的时候,只有当前面的条件值是一样的时候,才会判断第二个条件

按照数学成绩排名,如果数学成绩一样则按照英语成绩排名

SELECT 
* 
FROM 
student 
ORDER BY 
math DESC,english DESC;

在这里插入图片描述

分页查询

语法:limit 开始的索引 ,每页查询的条数
公式: 开始的索引 = (当前页码 - 1)* 每页显示的条数
** 注意limit是mysql的方言**

查询数学成绩排名前三的学生

SELECT
*
FROM 
student
ORDER BY 
math DESC
LIMIT
0,3;

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值