where后面跟select查询_3、MySQL高级查询

7b4e1bbefd35b2b03add588568e4968b.png

1、汇总查询

汇总是数据分析中常用的基础操作,所谓汇总就是 求和、求均值、求中无数、计数、最大值、最小值等等,这些操作在excel中都有对应的函数去实现,那在SQL中如何实现呢?

也是通过函数来实现的;

SQL常用的聚合函数:
求和  sum
计数  count
求均值  avg
最大值  max
最小值  min
  • 案例:

02f70ad24cdb15917a73a5ed7a082ec9.png

bb562012a4d54e1b213c1bb47f76c184.png

2、分组 group by

直接上练习:

ef3ed12a1a15545a7d2e055991703f29.png

6fc9d38a2f287a4812dd8059ac0fde6f.png

291cd5e086c499131d33e28dd69122e7.png

3、分组 + 条件筛选

这里涉及到2个重要的知识点:

第一,这里的条件筛选为什么不用where;

首先,where 子句不能与聚合函数一起使用,因为where 后面只能跟数据表中的原有的字段,通过聚合函数计算过的字段,不是数据表中原有的字段;
其次,where 的执行顺序是紧跟在from之后的,也就是说where是在数据从磁盘读取到内存中时,对原始表数据进行一条条的过滤;

那为什么用having呢?

having是对 group by 已经分组的数据进行条件过滤;
与 where 相反,having可以搭配聚合函数一起使用;

第二,为什么 having子句 后面不能直接引用 select 中的别名;

这里是SQL语句执行顺序的问题,having的执行优先级在 select 之前,所以having完全不知道select所引用的别名是什么;

group by ... having子句

8efbdb086a1c81d96596ba2cc59b6d27.png

8e78807806bdb8b57a3b60da4108b47e.png

7d21641fe0e17cce288814ded5009fbc.png

4、SQL语句的执行顺序

from - where - group by - having - select - order by - limit

5、排序 order by 子句

order by <列名> desc

升序 asc
降序 desc

6、limit 分页查询

limit m,n 从第 m+1 条记录开始, 返回 n 条记录

select * from student limit 10   显示前10行记录(默认m = 0)
select * form student limit 9,10  显示第10~20行记录

7、SQL处理业务问题,遇到难点时:

把问题翻译成大白话
写出分析思路
根据思路写出对应的SQL语句

8、sqlzoo练习

476a0e80a69dc913fe647994f8c151b2.png

3d0215df47186556e75f8b3210ed5d3e.png

4f7e69127d3c5fb77d517862772150f1.png

7b0e7a6cfda627fe5c81afc641e00c34.png

33614ca88105633b21bb49cc51b4af0b.png

bc0341a5b0f79988d47a6c5a3b2917d6.png

6b5715654ce4295e8b2a083e40ca6b94.png

count和sum练习

74ecf730312a5c7ca344622ae0b66043.png

9b437d10908f00d0816798a137fc0a01.png

230af75e4a2960e364e0fcf75936bafd.png

c061dc2befafbf612104d50235d74828.png

3389425e43e878297fd5c6532412d4cb.png

3b594e55e8b4e31f5dd845c5ebfada73.png

a9d22a3bdf6437137d87f7d35a8fc415.png

9accd0a4af5f291db68066402264be2d.png

还是比较简单滴~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL数据库中,SELECT是用于从一个或多个表中检索数据的关键字。SELECT查询表达式的基本语法如下: ```sql SELECT column1, column2, ... FROM table_name WHERE condition; ``` 其中,column1、column2等为要检索的列名,可以使用通配符*代替所有列。table_name为要检索的表名,condition为可选的筛选条件。 在SELECT查询表达式中,可以使用多种表达式来生成结果集。以下是一些常用的SELECT表达式: 1. 聚合函数:用于对结果集进行统计计算,例如SUM、COUNT、AVG、MAX、MIN等。 ```sql SELECT SUM(column_name) FROM table_name; ``` 2. 别名:用于为查询结果中的列或表指定别名,以便更好的阅读和理解查询结果。 ```sql SELECT column_name AS alias_name FROM table_name; ``` 3. 子查询:嵌套在SELECT语句中的查询语句,用于从子查询中获取数据,然后在主查询中使用它。 ```sql SELECT column_name FROM table_name WHERE column_name IN (SELECT column_name FROM table_name WHERE condition); ``` 4. 连接:用于将两个或多个表中的数据合并到一个结果集中,包括INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN等。 ```sql SELECT column_name FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name; ``` 5. 字符串函数:用于处理字符串数据,例如CONCAT、LENGTH、SUBSTRING、UPPER、LOWER等。 ```sql SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM table_name; ``` 6. 条件表达式:用于根据条件过滤结果集,例如IF、CASE等。 ```sql SELECT column_name, IF(column_name > 10, '大于10', '小于等于10') AS result FROM table_name; ``` 以上是MySQL数据库中常用的SELECT查询表达式,可以根据实际需求选择使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值