【MySql】4 Select查询操作(二)

1、顺序要求

在这里插入图片描述

2、排序和分页

-- 排序
-- ORDER BY 字段 DESC(降序) ASC(升序)
-- 分页
-- LIMIT x,y x:起始值(从零开始) y:页面大小(每页的行数)
-- 要求:查询高等数学的成绩 前五名排名(姓名,学科,成绩 降序 分页)
select name,subject,s.score 
from js_user as u 
INNER JOIN js_sub AS s
where subject = '高等数学' and u.id = s.id
ORDER BY score DESC
LIMIT 0,5

+----------+----------+-------+
| name     | subject  | score |
+----------+----------+-------+
| 姚明     | 高等数学 |    94 |
| 马龙     | 高等数学 |    93 |
| 欧阳国一 | 高等数学 |    92 |
| 刘翔     | 高等数学 |    89 |
| 刘国梁   | 高等数学 |    89 |
+----------+----------+-------+
5 rows in set

3、子查询

-- 要求:高等数学分数不小于90分的同学的基本信息
  • 方式一:

    select u.id,name,telephone,subject,score 
    from js_user as u 
    INNER JOIN js_sub as s 
    where u.id = s.id and subject = '高等数学'
    and score >=90
    order by score desc;
    
    
    +----+----------+-------------+----------+-------+
    | id | name     | telephone   | subject  | score |
    +----+----------+-------------+----------+-------+
    |  2 | 姚明     | 15759960607 | 高等数学 |    94 |
    |  3 | 马龙     | 15122637229 | 高等数学 |    93 |
    |  6 | 欧阳国一 | NULL        | 高等数学 |    92 |
    +----+----------+-------------+----------+-------+
    3 rows in set
    
  • 方式二:

    select id,name,telephone from js_user where id in (select id from js_sub WHERE score>=90 and `SUBJECT` ='高等数学')
    

4、分组

-- 分组 group by
-- 给分组设置条件 haveing

-- 要求 查询每一个人的平均成绩 最高分 和 最低分 只看平均分大于90的 并且降序排列
select `name`, AVG(score) AS 平均分, MIN(score) AS 最低分, MAX(score) AS 最高分
from js_sub AS s INNER JOIN js_user AS u on u.id = s.id
-- 按名字分组
GROUP BY `name`
-- 设置条件
HAVING 平均分 >=90
-- 降序
ORDER BY 平均分 DESC;

+----------+---------+--------+--------+
| name     | 平均分  | 最低分 | 最高分 |
+----------+---------+--------+--------+
| 马龙     | 93.0000 |     90 |     96 |
| 姚明     | 92.0000 |     89 |     94 |
| 杨国忠   | 91.6667 |     87 |     95 |
| 欧阳国一 | 91.0000 |     89 |     92 |
+----------+---------+--------+--------+
4 rows in set
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值