MySQL 查询语法回顾

语法顺序:

SELECT [ALL]|[DISTINCT] 字段名
FROM 数据源
WHERE 筛选条件
GROUP BY 字段…
HAVING 分组数据的筛选条件或者聚合函数
ORDER BY 字段
LIMIT

数据源

FROM 关键字后边跟的数据源可以是 实体表或临时表。

实体表

单张表或者多张表,多张表如果不指定匹配规则,会出现笛卡儿积现象

动态数据

FROM 后面跟的数据不止是一个实体表,而是一个[可以是从表中查询出来的]二维结果表(子查询)

where 子句

用来从数据表获取数据的时候,然后进行条件筛选(满足筛选条件的从硬盘加载到内存),where之后的所有操作都是内存操作

group by 子句

表示分组的含义,根据指定的字段,将数据进行分组(分组的目标是为了统计)

分组统计

group by 是为了分组后数据统计的,如果只是想看数据显示,那么 group by 没什么含义。通常是搭配统计函数使用(聚合函数)。常用聚合函数有 avg,sum,max,min 等。

  • count(value):统计每组中的数量,如果 value 是字段,那么不统计为 null 的值,如果 value 为 * 代表统计记录条数!

分组排序

在MySQL中,分组默认有排序的功能,按照分组字段进行排序,默认是升序
基本语法:group by 字段 [asc|desc],类似于order by

回溯统计

当分组进行多分组之后,往上统计的过程中,需要进行层层上报,将这种层层上报的过程称之为回溯统计,每一次分组向上统计的额过程都会产生一次新的统计数据,而且当前数据对应的分组字段为null。
基本语法:group by 字段 [asc|desc] with rollup;
在这里插入图片描述

having 子句

having 也是用来进行数据条件筛选的。但是和 where 有着本质的不同。

  1. having 针对分组数据 进行统计筛选,where 做不到【where 不能使用聚合函数】。
  2. havinggroup by 分组之后,可以使用聚合函数或者字段别名(这样理解比较好记,where 是从物理数据文件上加载数据,物理数据文件上只存的有字段和数据)

order by 子句

根据校对规则对数据进行排序。
基本语法:order by 字段 [asc|desc];

  • asc 升序,默认的

limit 子句

主要是用来限制记录数量

记录数限制

基本语法:limit number

分页

利用 limit 来限制获取指定区间的数据
基本语法:limit offset,length;

  • offset:从哪里开始。
  • length:具体的获取多少条记录。

mysql 中 limit 0,2; 表示,从第一条记录开始,只要前两条记录。

SQL练习题

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值