学习Mysql

本文详细解析了SQL语句的执行流程,包括SELECT语句的执行顺序,并介绍了SQL的关键字如SELECT、WHERE、GROUP BY等的功能及用法。通过实际案例展示了如何正确地组织SQL查询,以提高查询效率。

1.

1.1 SQL(结构化查询语言)

1.1.1

Select语句的执行顺序

SELECT语句中子句的执行顺序与SELECT语句中子句的输入顺序是不一样的,所以并不是从SELECT子句开始执行的,而是按照下面的顺序执行:

开始->FROM子句->WHERE子句->GROUP BY子句->HAVING子句->SELECT子句->ORDER BY子句->LIMIT子句->最终结果

每个子句执行后都会产生一个中间结果,供接下来的子句使用,如果不存在某个子句,就跳过 对比了一下,mysql和sql执行顺序基本是一样的, 标准顺序的 SQL 语句为: 

select 考生姓名, max(总成绩) as max总成绩

from tb_Grade

where 考生姓名 is not null

group by 考生姓名

having max(总成绩) > 600

order by max总成绩

所以sql语句的书写时,合适的缩进会让sql语句的阅读性大大提升。

1.1.2

Sql关键字

Select 查询关键字

Where对表进行条件判断生成一个视图再由select查询其中信息

Groud by

将数据按照 group by 后面的字段分组,只返回每组的一条统计信息。即将字段值重复的行合并为一行

聚集函数

Having

having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录。

having与where的区别:

having是在分组后对数据进行过滤

where是在分组前对数据进行过滤

having后面可以使用聚合函数

where后面不可以使用聚合

在查询过程中执行顺序:from>where>group(含聚合)>having>order>select。

order by

根据字段由小到大排序(系统默认由小到大),

若第一个字段重复了,order by后再加一字段再比较。

也可将sal换成数字(代表在表中是第几个字段,从1开始计数)

select name,job,sal from table_name where name = ‘张三’ order by sal;

Limit

LIMIT 语句可以被用来限制 SELECT 语句的返回行数。它需要传入 1 个或 2 个非负整数参数,第一个参数 offset 表示跳过前面多少行后开始取数据,第二个参数表示最多返回多少行的数据。默认 offset 为 0(不是 1)

总结

复习了sql语句的使用,在以前学习mysql不够仔细,更像是在学习jdbc和mybatis时的一个附属品,这次的复习也更是一个系统学习mysql的过程,基础的sql关键值也得到了系统的复习,最主要的是了解到了sql语句的执行顺序,给我写sql语句时提供了一个清晰的思路,在力扣的刷题过程中,我了解到了sql语句的书写更像一个数学题的解题,清晰的思路会让效率大幅度提升。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值